分类算法的评估
混淆矩阵(confusion matrix)定义如下,1代表正类,0代表负类:
预测1 | 预测0 | |
---|---|---|
实际1 | True Positive(TP) | False Negative(FN) |
实际0 | False Positive(FP) | True Negative(TN) |
precision的公式是P=TP/(TP+FP)或 P=TN/TN+FN,对于正类别而言,表示预测为正的样本中有多少预测对了
。precison是从预测结果来看的,表示通常意义上的分类准确率。
recall的公式是R=TP/(TP+FN)或R=TN/TN+FP ,对于正类别而言,表示实际为正的样本中有多少预测对了(即召回了多少正样本,剩下的正样本都丢失了)
。recall则是从实际结果来看的。
F1-score就是precision和recall的调和均值,也就是2/F1=1/P+1/R
accuracy则是 (TP+TN)/(TP+TN+FP+FN)
需要特别强调的是,评估算法的好坏不能只看accuracy,例如下面的confusion matrix:
Fault [[ 0 10]
Normal [ 0 77]]
其accuracy也达到了90%,但对于故障集则全部预测错误,其precise、recall、f1-score都是0,非常差的指标,即使accuracy高达90%也不能掩盖分类器的失败。
正负样本比例失衡问题
我们遇到的情况是正样本/负样本>30,此时故障情况的precision、recall都会变成0,亦即对故障情况的识别完全不可靠。
解决此类问题有几种方法:升采样、降采样、easy ensemble。
升采样就是人造一批负样本,把正负样本比例升上去,一旦正负样本均衡了,分类效果就会变好,但由于有“伪造”的数据,不排除过拟合的可能。
降采样就是去掉部分正样本,使得正负样本均衡,但如果负样本的绝对数量很小,会导致降采样后的总样本数变得很小,造成“欠拟合”,算法的分类效果会大大下降。
easy ensemble则是把样本分组,每组采用降采样的方法生成一个分类器,最后通过多个分类器组合投票的方式来给出最终分类结果。一般说来,easy ensemble由于引入了分类器组合的随机性,效果是要好于单纯的降采样的。但是,同样的,如果负样本的绝对数量很小,每组仍会出现欠拟合现象,导致整体分类效果变差。
样本区分度问题
在文本分类中,如果两块样本本身的相似度较高,预测的结果又截然相反,我们认为这样的样本区分度很高,属于优质样本。较多的优质样本可以提高分类器的各项评估值,且不会有过拟合风险。