今天是机器学习专题的第18篇文章,我们来看看机器学习领域当中,非常重要的其他几个指标。
混淆矩阵
在上一篇文章当中,我们在介绍召回率、准确率这些概念之前,先讲了TP、FP、FN、和FP这几个值。我们再来简单地回顾一下,我们不能死记硬背这几个指标,否则很容易搞错,并且还容易搞混。我们需要从英文入手来理解,其中的T表示真,可以理解成预测正确,F表示假,也就是预测错误。而P和N表示positive和negative,也就是阴和阳,或者是0和1,也就是两个不同的类别。
既然是两个类别,那么显然说明了我们的这些指标针对的是二分类的场景,也是机器学习当中最常见的场景。
混淆矩阵其实本质上就是将这四个值展示在一个表格当中,这样方便我们观察结果做出分析。
我们举个例子:
假设某一个模型的预测结果的混淆矩阵是这样,我们从上面展示的数据当中很容易就分析出,我们预测的错误主要发生在49这一格,也就是假阴性这一格。也就是说模型将大量的阳性样本预测成了阴性,说明模型的阈值设置得过高,我们可以尝试降低阈值来提升扩大召回。
反之,如果假阳性的样本太多,则说明模型的阈值过低,将大量阴性的样本预测成了阳性。我们想要提升模型的效果,可以考虑提升一下模型分类的阈值。
那如果假阳和假阴都很多该怎么办?
这种情况也很多,一般情况下是由于模型没有完全收敛,或者是模型不够强大。比如特征过多,特征当中很多隐藏的信息没有能够学习到。这个时候可以考虑使用更加复杂的模型,比如神经网络或者是XGboost这种较为强力的模型。如果模型本身已经足够复杂,那么可能是训练的时候的样本数量不够多,导致模型的能力无法完全发挥,这个时候可以考虑增加一些样本。
理解了混淆矩阵的概念和用途之后,我们就可以进一步来看ROC了。
ROC
ROC的英文是receiver operating characteristic curve,翻译过来是接受者操作特征曲线,这是一个从信号系统学科当中迁移过来的一个概念。老实讲我不太了解信号系统,不太清楚它原本的含义,但是在机器学习当中,它是反应TPR和FPR的曲线。
标一下关键点,TPR和FPR以及曲线。这里的TRP就是True Positive Rate,也就是真阳率,这里的FPR是假阳率。
所谓的真阳率也就是召回率,也就是所有阳性样本当中被我们预测成阳性的比例。
FPR自然就是False Positive Rate,也就是假阳率,是所有阴性样本当中被预测成阳性的比例。分母显然是FP,分子是FP TN。
我建议大家不要把TPR理解成recall,虽然它的确就是recall但是如果你记成recall的话,会增加记忆成本。横轴和纵轴记成FPR和TPR比较好记。
所以ROC曲线就是横轴是FPR纵轴是TPR的曲线,大概是下面这个样子。