目录
在大多数情况下,不同类别的分类代价并不相等,比如某肿瘤是否会导致死亡的应用中。
我们将会考察一种新的分类器性能度量方法,并通过图像技术来对在上述非均衡问题下不同分类器性能进行可视化处理。
其他分类性能度量指标:正确率、召回率及ROC曲线
错误率值得是在所有测试样例中错分的样例比例。实际上,这样的度量错误掩盖了样例如何被分错的事实。在机器学习中,有一个普遍使用的称为混淆矩阵的工具,它可以帮助人们更好地了解分类中的错误。
利用混淆矩阵就可以更好地理解分类中的错误,如果矩阵中的非对角元素均为0, 就会得到一个完美的分类器。
接下来,我们考虑一个特殊的混淆矩阵,即二类问题:
预测结果 | |||
+1 | -1 | ||
真实结果 | +1 | 真正例(TP) | 伪正例(FN) |
-1 | 伪正例(FP) | 真反例(TN) |
几个定义:
- 真正例(True Positive, TP):一个正例被正确地判为正例
- 真反例(True Negtive, TN):一个反例被正确地判为反例
- 伪正例(False Positive, FP):一个反例被错误地判为正例
- 违反例(False Negtive, FN):一个正例被错误地判为反例
在分类中,当某个类别地重要性高于其他类别时,我们就可以利用上述定义来定义出多个比错误率更好地新指标:
正确率(Precision):,给出的是预测为正例地样本中真正正例地比例
召回率(Recall):,给出的是真正正例出被预测出的比例
我们可以很容易地构建一个高正确率或者高召回率的分类器,但是很难同时保证两者成立。
另一个用于度量分类中的非均衡型的工具是ROC曲线(ROC cureve),ROC代表接收者操作特征(Receiver Operating Characteristic),它最早在二战期间由电气工程师构建雷达系统时使用过。
ROC曲线给出的是当阈值变化时伪正例和真正例的变化情况。ROC曲线左下角的点所对应的是将所有样例判为反例的情况,右上角的点对应的则是将所有样例判为正例的情况。
ROC曲线不但可以用于比较分类器,还可以基于成本效益(cost-versus-benefit)分析来做出决策。由于在不同的阈值下,不同的分类器的表现情况可能各不相同,因此以某种方式将他们组合起来也许会更有意义。
对不同的ROC曲线进行比较的一个指标是曲线下面积(Area Under the Curve, AUC)。AUC给出的是分类器的平均性能值,当然它并不能完全代替对整条曲线的观察。一个完美分类器的AUC为1.0,而随机猜想的AUC为0.5.
基于代价函数的分类器决策控制
除了调节分类器的阈值外,我们还有一些其他可以用于处理非均衡分类代价的方法,其中的一种称为代价敏感学习(cost-sensitive learning)。
在不同的机器学习算法中,由不同的方法引入代价信息。在AdaBoost中,可以基于代价函数来调整错误权重向量D;在朴素贝叶斯中,可以选择具有最小期望代价而不是最大概率的类别作为最后的结果;在SVM中,可以在代价函数中对于不同的类别选择不同的参数C。
处理非均衡问题的数据抽样方法
另一种针对非均衡问题调节分类器的方法,就是对分类器的训练数据进行改造。这可以通过欠抽样(undersampling)或者过抽样(oversampling)来实现。过抽样意味着复制样例,欠抽样意味着删除样例。