在处理分类问题时,会遇到一种情况:
假设一个二元分类问题:假设我们的预测算法是:,这个算法忽略特征值,不管任何情况下都是预测等于0。
毫无疑问这是一个糟糕的算法,但是在测试集中,99%的样本输出,1%的样本输出,这样计算预测算法的误差率的时候,会的到1%的误差率,这就是很糟糕的情况,一个完全错误的算法得到了一个正确率很高的测试结果。
这种情况称之为偏斜类(Skewed Classes)的问题。
解决问题的办法
处理这种情况,需要参考查准率和召回率
上图的表格中,提到了四个概念。
TP(真阳性) 预测为真的样本中确实为真的数量。
FP(假阳性) 预测为真的样本中确实为假的数量。
FN(假阴性) 预测为假的样本中确实为真的数量。
TN(真阴性) 预测为假的样本中确实为假的数量。
举个例子来说明
预测某些病人有没有得癌症。
假设有100个样本,真实情况是有10个得癌症的,通过预测函数遇到到了有12个得了癌症,其中有8个是真实得癌症的。
这种情况下:
TP=8
FP=12-8=4
FN=10-8=2
TN=(100-12)-2=86
准确率 Accuracy
正确预测为1,正确预测为0的样本比率,公式为:
上例中准确率为
查准率 Precision
查准率是指在所有预测为1的样本中预测正确的比率,公式为:
上例中查准率为
召回率 Recall
召回率是指在所有真正为1的样本中预测正确的比率,公式为:
上例中召回率为
在最开始偏斜类问题中 TP=0,召回率为0,因此那个预测算法是错误的。
查准率和召回率的关系
在分类问题中, 是我们就预测为1, 是我们就预测为0;
边界条件就是0.5
当提高边界值时,即,查准率会提高,召回率会下降;
当减小边界值时,即,召回率会提高,查准率会下降。
查准率和召回率之间的变化关系和上图类似,变化的曲线可能不是上图的平滑关系。大方向两者是相反的增长。
判断一个学习算法的性能
要判断一个学习学习算法需要综合考虑查准率和召回率,可以使用 F值(F-Score) 来综合评价。
公式为:2
通过上面,可以得出算法1的性能比较好。
转载自:
https://codeeper.com/2020/01/26/tech/machine_learning/evaluating_learning_algorithm.html