机器学习分类模型存在一种情况叫偏斜类。偏斜类简单理解就是在训练模型时由于正样本和负样本之间的严重不平衡,导致模型最后检测全部都是1或者全部都是0。假设正样本的y值为1,当正样本远远多于负样本的时候,训练好的模型就会一直输出1,这会给我们判断模型优劣带来一定的障碍,比如模型输出1的概率是99.8%,输出0的概率是0.2%,这里我们就会认为模型的精度很好,误差很小。但是其实这种结果是由于数据集的不平衡导致的。因此我们迫切需要一种新方法判断模型的优劣而不仅仅是从accuracy和error。
因此我们接下来引出两个参数一个是precision,另一个是recall。如下图:
Actual class是实际的类别,Predicted class是预测的类别。当预测类别和真实类别均为1时为True positive(TP),当真实类为0预测为1则说明预测错误为False positive(FP),当预测为0真实类为1则预测错误为False negative(FN),当预测和真实均为0时说明为True negative(TN)。
假设y=1是要检测的类别:
precision(查准率) =TP / (TP+FP) 查准率是真实类别和预测类别均为1然后除以预测类别为1的总和(红色框框)
Recall(召回率) = TP / (TP+FN) 召回率是真实类别和预测类别均为1除以真实类为1(不管预测对不对,黄色框