【机器学习】精确率与召回率

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hemk340200600/article/details/85273603

偏斜类

正类和负类的比例失衡,比如存在99%的正类和1%的负类,当算法的输出恒为1时,此时的错误率也只有1%,在这种情况下,并不能够很好地估计模型的泛化能力。

定义

  1. TP(True Positive),表示模型预测为正样本,实际上为正样本。
  2. FP(False Positive),表示模型预测为正样本,实际上为负样本。
  3. FN(False Negative),表示模型预测为负样本,实际上为正样本
  4. TN(True Negative),表示模型预测为负样本,实际上为负样本。

准确率(Accuracy)

准确率表示模型预测正确的正样本和负样本占所有样本的比例。公式为 a c c = T P + T N T P + F P + F N + T N acc=\frac{TP+TN}{TP+FP+FN+TN}

精确率(Precision)

精确率表示模型预测正确的正样本占所有预测正样本的比例。公式为 p r e c i s i o n = T P T P + F P precision=\frac{TP}{TP+FP}

召回率(Recall)

召回率表示模型预测正确的正样本占所有实际正样本的比例。公式为
r e c a l l = T P T P + F N recall=\frac{TP}{TP+FN}

F 1 F_1 Score(F score)

定义 F 1 S o c r e = 2 P R P + R F_1Socre=2\frac{PR}{P+R} ,当精确率接近0,或者召回率接近0时,都会得到一个很低的F值。当精确率为1,召回率也为1时,F值为1。因此F值可以用来为我们选择一个较好的临界值。

临界值

通常我们将模型预测输出大于等于0.5的预测为正样本,小于0.5的预测为负样本。假设我们的模型是在预测病人是否患癌症
如果我们想要较高的精确率,可以将阈值调高,保证我们的模型能够较为准确地找出患癌的人,并且不会将没患癌症的人识别为患癌,但是相对的,此时的召回率会更低。
如果我们想要较高的精确率,可以将阈值调低,保证我们能够找出更多实际患病的人,但是此时被误判为患癌的正常人可能更多,也就是精确率会下降。

总结

在模型预测恒为0的情况下,精确率和召回率都为0,因此能够说明此时模型的表现并不是很好。对样本失衡的情况,利用召回率和精确率,能够较好地评估模型的好与坏。同时利用F值,我们可以挑选出合适的临界值来使得模型表现更好。

猜你喜欢

转载自blog.csdn.net/Hemk340200600/article/details/85273603