【Machine Learning, Coursera】机器学习Week6 偏斜数据集的处理

ML Week6: Handing Skewed Data


本节内容:
1. 查准率(precision)和召回率(recall)
2. F 1 Score


偏斜类(skewed class)问题:数据集中每一类的数据量严重不均衡

如果数据集为偏斜类,分类正确率不是一个好的指标。比如恶性肿瘤预测问题,假设数据集中有0.5%的患者罹患恶性肿瘤,那么一个错误率为1%的学习算法可能并不是一个好的算法。此外,永远预测肿瘤为良性的算法能达到99.5%的正确率,但这显然是没有意义的。

那么,有没有更好的衡量指标呢?

这种情况下,我们可以采用查准率(precision)和召回率(recall)。

查准率衡量的是在所有预测y=1的样本中,实际上y=1的比例:

p r e c i s i o n = t r u e   p o s i t i v e s n o .   o f   p r e d i c t e d   p o s i t i v e s = t r u e   p o s t r u e   p o s + f a l s e   p o s

召回率衡量的是在所有实际y=1的样本中,预测y=1的比例:

r e c a l l = t r u e   p o s i t i v e s n o .   o f   a c t u a l   p o s i t i v e s = t r u e   p o s t r u e   p o s + f a l s e   n e g

真阳性(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. 原来 h θ ( x ) 0.5 时预测y=1,现在只有当 h θ ( x ) 0.5 时才预测y=1.

反之,如果我们希望任何可能患有癌症的患者不错过救治时机,即降低出现假阴性的可能,那么我们可以降低默认阈值。

对于前一种情况,我们可以得到较高的查准率,但提高阈值必定会导致更多的癌症患者没有被发现,即降低了召回率。后一种情况,我们则会得到较高的召回率和较低的查准率。

我们当然希望两个指标都尽可能地高,但在两者无法两全的情况下,应该如何权衡呢?

F 1 Score 能帮我们解决这个难题,它结合了查准率和召回率两个指标,综合考察算法的效果

F 1 = 2 P R P + R

P: precision R: recall

如在以下三个算法中, F 1 Score能得到更好的结果。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42395916/article/details/82665569
今日推荐