基于混淆矩阵的机器学习分类指标体系是在衡量各个分类器的分类效果中最常用的,本文对这些指标的计算原理进行了全面的整理,其中,对二分类的G-mean值和Matthews相关系数做了三分类及更多分类上的推广定义,并利用UCI的机器学习数据的Vehicle Silhouettes (汽车轮廓)数据集进行了基于Sklearn的相应python实验,给出了相应python代码以及运行结果等。特别地,对于推广到多分类的两个指标定义了相应的python函数,并进行了相应实验和验证。本文为最常用的机器学习分类评价指标的选取提供理论和python实践及相应代码的参考,为广大学者选用指标提供了依据。
机器学习分类实验的效果,主要根据验证集或测试集的分类预测情况用指标进行衡量,而各种分类指标从不同的方面对预测结果进行了计算和度量。各种研究论文中,最常用的是基于混淆矩阵的分类评价指标体系[1]-[7],其中,最常用的计算指标之一是分类准确率(Accuracy) [2]-[7],用来衡量整体效果, 是总整体上看有多少样本被分类正确;其次是分类准确率(Precision) [1] [3] [4], 用于衡量正确预测的正类样本数占所有被预测为正类的样本数的比例,这个指标只关注正类样本的情况;经常和Accuracy 或Precision 一起用,还有召回率(Recall) [1] [2] [3] [4],它关注分类正确的正类样本个数占所有正类个数的比例;再者是混淆矩阵(Confusion Matrix) [4] [7] [8],它给出每类样本被分到各个类别的数目,可以从它计算出很多其它的分类指标,比如Accuracy、Precision、Recall 等,其中Precision 和Recall 都只关注正类样本的分类情况,这可能是在研究某些问题的时候,确实只关注正类样本就够了。在这些可计算的分类性能度量的指标基础上,还有一些别的指标,有的是致力于改进前面一些指标单方面的不足,综合和均衡前面多个指标,比如F1-score [1] [3] [7],目的在于均衡Precision 和Recall,构造一个综合的分类衡量指标;G-mean 值[9],是对正类和负类的Recall 进行综合表达;和Matthews 相关系数[10],是根据混淆矩阵构造的一个综合指标;Kappa 系数也是根据混淆矩阵中的值进行综合的一个衡量样本实际类别与模型预测类别一致程度的指标[7]。
关于分类性能衡量的可视化手段, 有P_R曲线[7]和ROC曲线[11] [12], 其中,P-R 曲线,是根据分类器对于Precision 还是Recall 的重视程度而取不同的阈值得到;ROC 曲线, 是利用正类中被预测为正类的比例, 以及负类中被预测成负类的比例, 分别做成横纵坐标, 形成的曲线, 该曲线下的面积称为AUC 值,这个值越大,分类效果越好。
对于这些指标, 多数论文是选择某些指标来衡量其分类效果, 很少有论文综合研究这些指标, 其中, 文献[13]对分类指标做了综述, 从基于错误率的、基于混淆矩阵的和基于统计显著性检验的三大类性能度量方面进行了指标综述,列出了每一个指标的就算原理,并针对一个取值范围在[0, 1]的数据集,采用最近邻(KNN)和最优子集回归两种方法进行回归和分类实验,将计算得到的各个指标值列在一起进行了对