分类中的重点
非均衡分类问题
大多数情况下,不同类别的分类代价并不相等
所以我们要考虑将不同的决策代价考虑在内
----分类性能的度量指标:正确率、召回率及ROC曲线
在机器学习中,有一个普遍使用的成为混淆矩阵的工具,可以更好地帮助度量分类的错误
如果非对角线元素均为0,就会得到一个完美的分类器
在分类中,当某个类别的重要性高于其他类别时,我们可以利用上述定义来定义出比错误率更好的新指标。
正确率(precision) = TP/(TP+FP)
召回率(recall) = TP/(TP+FN)
这样,我们很容易构造出一个高正确率或者高召回率的分类器。
但是如果任何样本都是正例,那么召回率达到100%时,正确率却很低
-----度量分类的非均衡工具ROC曲线
在ROC曲线中给出了两条线。。图中的横轴是伪正例的比例(假阳率=FP/(FP+TN)),而纵轴是真正例的比例(真阳率=TP/(TP+FN))
ROC曲线给出的是当阀值出现加阳率和真阳率的变化情况。ROC曲线不仅可以用于比较分类器,还可以基于成本效益做出决策。
在理想的情况下,最架分类器应该尽可能地出现在左上角。
对于ROC曲线进行比较的一个指标是曲线下的面积AUC。AUC给出的是分类器的平均性能,一个完美的分类器AUC是1.0,而随机猜测的AUC为0.5。
-----基于代价函数的分类器决策控制
除了调整分类器阀值以外,还可以进行代价敏感的学习。
代价非0即1,可以基于该代价计算总代价TP*0+FN*1+FP*1+TN*0
接下来考虑第二张表TP*(-5)+FN*1+FP*50+TN*0
总代价是不相同的
如果在构建分类器时,知道了这些代价值,那么就可以选择付出最小代价的分类器
在分类算法中,我们有很多方法可以来引入代价信息。
在AdaBoost中,可以基于代价函数来调整错误权重向量D。
在NB中,可以选择最小期望代价而不是最大概率类别作为最后结果。
在SVM中,可以在代价函数中对于不同类别的选择不同参数c
上述做法会给较小的类更多权重,即在训练中只允许更少的错误
-----数据抽样方法
对分类的训练数据进行改造,可以通过欠抽样(undersampling)和过抽样(oversampling)来实现。过抽样意味着复制样例,欠抽样意味着删除样例。
比如在信用卡欺诈中,正样例属于罕见类别,我们希望对这种罕见类别能尽可能地保留信息,因此我们应该保留正例类别中的所有样例,而对反例类别进行欠抽样或者样例删除。这就带来一个问题,如何确定剔除哪些样例?
一个解决办法就是选择那些离决策边界较远的样例进行删除。假设我们与一个数据集,其中有50例信用卡欺诈交易和5000例合法交易。如果我们需要对合法交易进行欠抽样,使得两类数据比较均衡的话,那么我们就要去掉4950个样例,未免有些极端。
还有一种策略是使用反例类别欠抽样和正例类别过抽样混合的方法。但是可能会导致过拟合