其他分享
首页 > 其他分享> > 性能度量-----机器学习

性能度量-----机器学习

作者:互联网

性能度量

对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型繁华能力的评价标准,这就是性能度量。在给定样例集D=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{m}, y_{m}\right)\right\},其中y_i是示例{x}_{i}的真实标记,要评估学习器f的性能,就是要把学习器输出的结果f(x)与真实标记y进行比较。

1. 均方误差

在回归任务中最常用的性能度量是“均方误差”:

E(f ; D)=\frac{1}{m} \sum_{i=1}^{m}\left(f\left(\boldsymbol{x}_{i}\right)-y_{i}\right)^{2}

2. 错误率与精度

这是分类任务中最常用的两种性能度量,适用于二分类以及多分类任务。对于样例集D,分类错误率定义为

E(f ; D)=\frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right) \neq y_{i}\right)

精度则定义为

\begin{aligned} \operatorname{acc}(f ; D) &=\frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=y_{i}\right) \\ &=1-E(f ; D) \end{aligned}

其中\mathbb{I}是统计满足括号里的条件的元素个数。

3. 查全率、查准率与F_1

错误率和精度虽然常用,但是并不能满足所有任务需求。在对西瓜进行分类的时候,我们可能还会关心挑出来的西瓜有多少比例是好瓜或者所有好瓜中有多少比例被挑出来了。这个时候就需要其他的性能度量。

对于二分类问题,样例根据其真实类别与学习器预测类别的组合划分为真正例、假正例、真反例、假反例。

查准率P(precision)与查全率R(recall)分别定义为: 

在实际场景中,查准率和查全率是一对矛盾的度量。往往两者不会同时偏高,我们尽可能找到两者之间的平衡。

以查准率为纵轴,查全率为横轴作图,就得到了查准率-查全率曲线,简称“P-R” 曲线。若一个学习器的P-R曲线被另外一个学习器的曲线完全“包住”,那我们可以判断后者的性能优于前者。对于一对带有矛盾的性能度量,我们一般不会单独的考虑某个性能度量,而是综合考虑两者,最常用的是F_1度量:

 在一些实际应用中,对于查全率和查准率的重视程度有所不同,F_1度量的一般形式——F_{\beta}

其中\beta>0度量了查全率对查准率的相对重要性。 \beta>1的时候查全率有更大的影响;\beta<1的时候查准率有更大的影响。

4. ROC与AUC

度量背景:很多学习器是为测试样本产生一个实际值或者预测概率,然后将这个预测值与一个分类阈值进行比较,如果大于阈值则为正类,否则则为反类。实际上,根据这个实值或者概率预测结果,我们将测试样本进行排序,“最可能”是正例的排在最前面,最不能的排在最后面。这样,在分类过程中就相当与在这个排序中以某个“截断点”将样本分为两部分,前一部分判作为正例,后一部分则判作为反例。在不同的应用任务中,我们可以根据实际需求来采用不通过的截断点,如果我们更加重视查准率,则可以选择排序中靠前的位置进行阶段;如果更加重视查全率,则可以选择靠后的位置进行截断。ROC曲线则是从这个角度出发来研究学习器泛化性能的有力工具。

ROC:受试者工作特征。我们根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出真正例率(TPR)和假正例率(FPR),分别作为纵轴和横轴。

 

其中AUC为ROC曲线下的面积 ,可估算为:

5. 代价敏感错误率与代价曲线

 度量背景:在现实任务中长长会遇见这样的情况:不同类型的错误造成的后果不同,为了权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”。

以二分类为例,我们根据任务的领域知识设定一个“代价矩阵”:

 其中cost_{ij}表示将第i类样本预测为第j类样本的代价。一般来说cost_{ii}=0;如果将第0类判别为第1类所造成的损失更大,则cost_{01}>cost_{10};损失程度相差越大,两者的值的差别越大。

回顾前面的性能度量可以看出,它们大都隐式地假设了均等代价,没有考虑不同错误会造成不同地后果。在非均等代价下,我们所希望地不再是简单地最小化错误次数,而是希望最小化总体代价。若将上表中第0类作为正类、第1类作为反类,令D+与D-分别代表样例集D的正例子集和反例子集,则代价敏感错误率为:

性能度量指标就讲到这些,实际上西瓜书上还有很多,但是常用的、常见的就是以上几种,如果在当前任务下还是不知道选择什么性能指标来度量自己的模型,在kaggle平台上的众多竞赛中,都会在当前场景下给出说明,在自己做项目的时候可以参照一番。

标签:机器,错误率,性能,查全率,度量,代价,查准率
来源: https://blog.csdn.net/kidchildcsdn/article/details/104734748