机器学习模型的性能度量方法

时间:2024-04-13 12:21:54

       对机器学习模型进行评估,不仅需要有效的实验评估方法,还需要有衡量模型泛化能力的评价指标,在这里总结一下常用的机器学习模型的性能度量方法,总结不完善的地方欢迎大家留言补充。

       以二分类为例,首先给出分类结果混淆矩阵:

真实情况 预测结果
正例 反例
正例 TP FN
反例 FP TN
       上面表格各个变量代表的意义:
              :将       正例预测为正例数;
       FN:将正例预测为负例数;
       FP:将负例预测为正例数;
       TN:将负例预测为负例数;

一准确率

Accuracy=TP+TNTP+FN+FP+TN Accuracy=\frac{TP+TN}{TP+FN+FP+TN}

二精确率(查准率)

P=TPTP+FP P=\frac{TP}{TP+FP}

三召回率(查全率)

R=TPTP+FN R=\frac{TP}{TP+FN}

F1F_{1}

2F1=1P+1R \frac{2}{F_{1}}=\frac{1}{P}+\frac{1}{R}

可以得到:

F1=2TP2TP+FP+FN F_{1} = \frac{2TP}{2TP+FP+FN}

五P-R曲线

       以精确率为纵轴,以召回率为横轴,得到的就是“P-R曲线”。能够直观的显示出机器学习样本在总体上的精确率和召回率。

       平衡点(Break-Even Point,BEP),精确率等于召回率的点。

P-R曲线如下图所示:

机器学习模型的性能度量方法
       利用P-R曲线以及平衡点来比较机器学习的性能还是简单化了些,更常用F1F_{1}值来度量

六ROC曲线

       很多机器学习的预测就是为测试样本产生一个预测的实值或者概率值,然后与分类的阈值进行比较,若大于这个阈值则分为正类,反之则为负类。如果想要精确率高点,则阈值稍微高点,对排序中靠前的位置进行截断;如果想要召回率高点,则阈值稍微低点,对排序中靠后的位置进行截断。因此,排序本身的质量好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或者说,“一般情况下”泛化能力的好坏,ROC曲线就是从这个角度出发来研究机器学习泛化性能的有力工具。

       首先介绍两个公式,“真正例率(True Positive Rate,TPR)和“假正例率(False Positive Rate,FPR)”,分别定义为:

TPR=TPTP+FN TPR=\frac{TP}{TP+FN}

FPR=FPTN+FP FPR=\frac{FP}{TN+FP}
以TPR为纵轴,以FPR为横轴,得到的曲线图形就是“ROC图”。如下图所示:

机器学习模型的性能度量方法

七AUC

       AUC就是ROC曲线下的面积。

参考文献

[1] 周志华. 机器学习

[2] 李航. 统计学方法