偏斜类

偏斜类是指在分类任务中一类的数据远大于另一类的数据.最典型的例子是判断是否得癌症.因为患癌症的概率比较小,所以数据中患癌症的样本数要远小于没有患癌症的样本.

偏斜类会导致一些问题,比如说我们有一个癌症判断模型,这个模型的错误率为1%.如果是正常的分类任务,我们认为1%的错误率还可以,但是在偏斜类中,考虑到患癌症的人数只有0.5%,那么这个错误率就很差了.因为即使把全部患癌人都判断错,错误率也只有0.5%,而模型1%的错误率显然误差很大.

精准率/召回率

遇到偏斜类问题时,我们可以使用精准率和召回率来衡量的正确率.

  • True Positives,TP:预测为正样本,实际也为正样本的特征数
  • False Positives,FP:预测为正样本,实际为负样本的特征数
  • True Negatives,TN:预测为负样本,实际也为负样本的特征数
  • False Negatives,FN:预测为负样本,实际为正样本的特征数

精准率(Precision):

P = \frac{TP}{TP + FP }

召回率(Recall):

R = \frac{TP}{TP + FN }

精准率与回召率都是越高越好.

精准率和召回率又被称为查准率和查全率,我觉着这两个名字更为贴切,查准率衡量预测是不是准确,查全率衡量预测是不是全面.

F1 score

有的时候我们很难决定查准率高点好,还是回召率高点好.比如说下面的数据:

Precision Recall F1 score
Algorithm1 0.5 0.4 0.444
Algorithm2 0.7 0.1 0.175
Algorithm3 0.02 1.0 0.0392

这时我们可以使用F1 score最高的.

F_1  = 2\frac{PR}{P + R}

另外F1 score最大值为1,即P与R都为1的时候.而P与R有一个比较小,F1 score就会很小.

有时候我们对精确率和召回率并不是一视同仁,比如有时候我们更加重视精确率。我们用一个参数β来度量两者之间的关系。如果\beta>1, 召回率有更大影响,如果\beta<1,精确率有更大影响。自然,当\beta=1的时候,精确率和召回率影响力相同,和F1形式一样。含有度量参数\beta的F1我们记为F_\beta, 严格的数学定义如下:

F_\beta = \frac{(1+\beta^2)*P*R}{\beta^2*P + R}

RoC曲线和PR曲线

TPR(true positive rate):

TPR = \frac{TP}{TP + FN }

FPR(false positive rate):

FPR = \frac{FP}{FP + TN }

以TPR为y轴,以FPR为x轴,我们就直接得到了RoC曲线。从FPR和TPR的定义可以理解,TPR越高,FPR越小,我们的模型和算法就越高效。也就是画出来的RoC曲线越靠近左上越好。如下图左图所示。从几何的角度讲,RoC曲线下方的面积越大越大,则模型越优。所以有时候我们用RoC曲线下的面积,即AUC(Area Under Curve)值来作为算法和模型好坏的标准。
image.png

以精确率为y轴,以召回率为x轴,我们就得到了PR曲线。仍然从精确率和召回率的定义可以理解,精确率越高,召回率越高,我们的模型和算法就越高效。也就是画出来的PR曲线越靠近右上越好。如上图右图所示。

使用RoC曲线和PR曲线,我们就能很方便的评估我们的模型的分类能力的优劣了。

posted @ 2018-08-10 09:54:48
评论加载中...

发表评论