机器学习基础__01__性能度量

目录

一、性能度量

二、回归问题的性能度量

三、分类问题的性能度量

3.1 混淆矩阵

3.2 准确率、召回率与F1

3.3 ROC与AUC


一、性能度量

性能度量是衡量模型泛化能力的评价标准,反映了任务需求。
通俗讲就是对于多个模型,哪个好呢?性能度量就是评判这个。

什么样的模型是好的,不仅取决于算法和数据,还取决于任务需求。

二、回归问题的性能度量

回归问题常用的性能度量是“圴方误差”
\frac{1}{m} \sum_{i=1}^{m}\left(f\left(\boldsymbol{x}_{i}\right)-y_{i}\right)^{2}f\left(\boldsymbol{x}_{i}\right) 是预测值,y_{i} 是真实值。

三、分类问题的性能度量

3.1 混淆矩阵

一些标记:
正例Positive,反例Negative
预测是正确的True,预测是错误的False
TP:预测是正例,预测正确,即实际是正例
FP:预测是正例,预测错误,即实际是反例
TN:预测是反例,预测正确,即实际是反例
FN:预测是反例,预测错误,即实际是正例
实际正例:TP+FN
实际反例:FP+TN

混淆矩阵:

3.2 准确率、召回率与F1

  • 准确率

P = \frac{TP}{TP + FP},准确率(亦称查准率)强调准,表示预测是正例中,预测对的比例。

  • 召回率

R = \frac{TP}{TP + FN},召回率(亦称查全率)强调全,表示实际是正例中,预测对的比例。

举例:对于某个请求关键词,实际有200篇文章相关。某个算法预测100篇文章相关,而这100篇预测中,实际相关的只有80篇。
那么 P = 80 / 100 = 0.8,R = 80 / 200 = 0.4

  一句话总结:P与R分子相同,都是TP,P的分母是预测正例,R的分母是实际正例。

  • PR图与BEP

PR图怎么画?

其实这要从排序型模型说起。拿逻辑回归举例,逻辑回归的输出是一个0到1之间的概率数字,因此,如果我们想要根据这个概率判断用户好坏的话,我们就必须定义一个阈值。通常来讲,逻辑回归的概率越大说明越接近1,也就可以说他是坏用户的可能性更大。比如,我们定义了阈值为0.5,即概率小于0.5的我们都认为是好用户,而大于0.5都认为是坏用户。因此,对于阈值为0.5的情况下,我们可以得到相应的一对查准率和查全率。我们就遍历0到1之间所有的阈值,而每个阈值下都对应着一对查准率和查全率,从而我们就得到了这条曲线。

在PR图中,包围面积大的好:算法A > 算法C,算法B > 算法C,那么算法A与算法B呢?
BEP,是在PR图中取P=R,这样算法A > 算法B > 算法C
比BEP更常用的是F1度量

  • F1

F1 = \frac{2}{\frac{1}{P} + \frac{1}{R}} = \frac{2 * P * R}{P + R},F1中P与R权重一样。

若对P/R有不同偏好:
F_{\beta}=\frac{\left(1+\beta^{2}\right) \times P \times R}{\left(\beta^{2} \times P\right)+R}
\beta > 1时,R有更大影响,当\beta < 1时,P有更大影响

有的场景你会绝大程度地关心准确率,而另外一些场景你会更关心召回率。举例子,如果你训练一个分类器去检测视频是否适合儿童观看,你会倾向选择那种即便拒绝了很多好视频、但保证所保留的视频都是好(高准确率)的分类器,而不是那种高召回率、但让坏视频混入的分类器(这种情况下你或许想增加人工去检测分类器选择出来的视频)。另一方面,加入你训练一个分类器去检测监控图像当中的窃贼,有着 30% 准确率、99% 召回率的分类器或许是合适的(当然,警卫会得到一些错误的报警,但是几乎所有的窃贼都会被抓到)。

 

3.3 ROC与AUC

ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。该曲线最早应用于雷达信号检测领域,用于区分信号与噪声。后来人们将其用于评价模型的预测能力,ROC曲线是基于混淆矩阵得出的。

  • ROC曲线

真正例率TPR = \frac{TP}{TP + FN},分母是实际是正例,(TPR其实就是召回率)
实际是正例中,预测是正例的比例(预测对了,TP)


假正例率 FPR = \frac{FP}{FP + TN},分母是实际是负例
实际是负例中,预测是正例的比例(预测错了,FP)

ROC曲线中,横座标是假正例率,纵座标是真正例率

我们发现TPR和FPR分别是基于实际表现正例和负例出发的,也就是说它们分别在实际的正样本和负样本中来观察相关概率问题。正因为如此,所以无论样本是否平衡,都不会被影响。还是拿之前的例子,总样本中,90%是正样本,10%是负样本。我们知道用准确率是有水分的,但是用TPR和FPR不一样。这里,TPR只关注90%正样本中有多少是被真正覆盖的,而与那10%毫无关系,同理,FPR只关注10%负样本中有多少是被错误覆盖的,也与那90%毫无关系,所以可以看出:如果我们从实际表现的各个结果角度出发,就可以避免样本不平衡的问题了,这也是为什么选用TPR和FPR作为ROC/AUC的指标的原因。

与前面的P-R曲线类似,ROC曲线也是通过遍历所有阈值来绘制整条曲线的。

TPR表示复盖程度,FPR表示虚报的程度(负样本中有多少被错误预测为正例,因为我们关心的是正例),所以我们希望覆盖越多越好,虚报越少越好。即TPR越高,FPR越低(即ROC曲线越陡),模型性能越好。

ROC一个最大优点是:无视样本不平衡。

  • AUC

AUC表示ROC曲线下面积,越大表示模型性能越好。

auc计算公式:https://blog.csdn.net/qq_22238533/article/details/78666436

参考:

1. 讲解非常好

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章