一、分类器的评估方法
1、混淆矩阵
混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。
它的每一列代表了预测类别 ,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。
举个例子:
预测 | ||||||
1类 | 2类 | 3类 | 4类 | |||
1类 | 8 | 0 | 1 | 1 | ||
2类 | 1 | 16 | 2 | 1 | ||
3类 | 3 | 1 | 22 | 4 | ||
4类 | 3 | 4 | 3 | 30 |
在表格中,1~4代表了四种类别,假设有100个样本,其中1类10个、2类20个、3类30个、4类40个。
现在将1类中的10个样本通过一个分类器,最后得到结果,1类8个,2类0个,3类和4类各1个。
其他几类如列表所示。
可以从列表中观察到,在矩阵对角线上的是分类正确的数据,而在其他位置的则是分类错误的数据,比如第四行,它将40个属于类4的数据输入分类器,其中错误判断成1类的有3个,错判成2类的有4个,错判成3类的有3个,另外30个分类正确。
整个混淆矩阵的可视化效果很好。
在混淆矩阵中,有四个概念:false positives,falsenegatives,true positives和true negatives
以表1中的1类为例
TP(True Positive): 真实为1类,预测也为1类
FN(False Negative): 真实不为1类,预测为1类
FP(False Positive): 真实为1类,预测不为1类
TN(True Negative): 真实不为1类,预测也不为1类
通过这个可以将数据变为两行两列:
1类 | 其他类 | |
1类 | TP 8 | FP 2 |
其他类 | FN 7 | TN 83 |
2、准确率和召回率
查准率 = 精度 = precision 查全率 = 召回率 = recall,看上去可能有些难以理解,不过如果结合混淆矩阵,可以较为直观的理解其中的含义:
还是以1类为例,它的准确率是0.8,召回率为0.5333.
两者取值在0和1之间,数值越接近1,查准率或查全率就越高。
在这个数据集中不是很能说明查准率和召回率的重要性,如果换一个极端的数据再来看:
1类 | 其他类 | |
1类 | TP 0 | FP 10 |
其他类 | FN 0 | TN 90 |
100个样本中,有1类10个,其他类90个,而分类器则是将所有的样本都划分到了其他类,这时如果只算准确率,准确率高达0.9,但很明显,这个分类器是不对的,而通过计算recall和precision,可以很明显发现这一点。
3、F值(F-Measure)
我们希望Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。
比如另一个极端情况下,我们只搜索出了一个结果,且是准确的,那么Precision就是100%,但是Recall就很低;而如果我们把所有结果都返回,那么比如Recall是100%,但是Precision就会很低。
所以,我们引入了综合评价指标F值(F-Measure)。
F-Measure是Precision和Recall加权调和平均:
a是参数,当a=1是,即为最常见F1.
4、ROC和AUC
受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve)。
具体概念上的就不多赘述了,它的绘制还是基于之前混淆矩阵中的那四个值。
ROC关注两个指标:
正例分对的概率
负例分成正例的概率
在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR。
在一个二分类模型中,假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如0.5,概率大于等于0.5的为正类,小于0.5的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。
根据不同的阈值进行分类,根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve。
AUC
AUC (Area Under Curve) 被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围一般在0.5和1之间。
AUC更大的分类器效果更好