【Machine Learning, Coursera】机器学习Week6 偏斜数据集的处理
ML Week6: Handing Skewed Data
本节内容:
1. 查准率(precision)和召回率(recall)
2. Score
偏斜类(skewed class)问题:数据集中每一类的数据量严重不均衡
如果数据集为偏斜类,分类正确率不是一个好的指标。比如恶性肿瘤预测问题,假设数据集中有0.5%的患者罹患恶性肿瘤,那么一个错误率为1%的学习算法可能并不是一个好的算法。此外,永远预测肿瘤为良性的算法能达到99.5%的正确率,但这显然是没有意义的。
那么,有没有更好的衡量指标呢?
这种情况下,我们可以采用查准率(precision)和召回率(recall)。
查准率衡量的是在所有预测y=1的样本中,实际上y=1的比例:
召回率衡量的是在所有实际y=1的样本中,预测y=1的比例:
真阳性(true positive):预测y=1,实际y=1
假阳性(false positive):预测y=1,实际y=0
真阴性(true negative):预测y=0,实际y=0
假阴性(false negative):预测y=0,实际y=1
我们可以画出下面2x2的表格帮助理解和记忆,列表示真实分类,行表示预测分类。
对于上述恶性肿瘤预测问题,如果我们希望审慎一些,只有非常确定的情况下才告诉患者他患了癌症,即降低出现假阳性的可能,那么我们可以提高逻辑函数的默认阈值,比如从0.5变为0.8. 原来时预测y=1,现在只有当时才预测y=1.
反之,如果我们希望任何可能患有癌症的患者不错过救治时机,即降低出现假阴性的可能,那么我们可以降低默认阈值。
对于前一种情况,我们可以得到较高的查准率,但提高阈值必定会导致更多的癌症患者没有被发现,即降低了召回率。后一种情况,我们则会得到较高的召回率和较低的查准率。
我们当然希望两个指标都尽可能地高,但在两者无法两全的情况下,应该如何权衡呢?
Score 能帮我们解决这个难题,它结合了查准率和召回率两个指标,综合考察算法的效果:
P: precision R: recall
如在以下三个算法中, Score能得到更好的结果。