精确率、召回率、F1值
(1)精确率(命中率)(precision):模型预测为正类的样本中预测正确的数量/模型预测为正类的样本数量;(追求查准)
(2)召回率(覆盖率)(recall):模型预测为正类的样本中预测正确的数量/测试集中正例的数据。(追求查全)
精准率、查准率: P = TP/ (TP+FP)
召回率、查全率: R = TP/ (TP+FN),这个要和假阳率做对比
**(1)(2)说的都是正精确率和正覆盖率,对应有负精确率和负覆盖率。
(3)鱼与熊掌不可兼得:精确率和召回率是不可都很高的,因为召回率高,意味着模型把更多的样本预测为整例,由于这些预测样本中含有假正例,所以降低了模型的精确率;而当模型比较保守时,只是将其最确定的样本预测为正样本,这样精确率会很高,但是由于提高了预测为正样本的门槛,所以预测为正样本数量就会变少,从而召回率就会变低。
(4)F1值:综合考虑精确率和召回率的情况
F1-score=2precisionrecall / (precision + recall)
但是如果你的两个模型,一个precision特别高,recall特别低,另一个recall特别高,precision特别低的时候,f1-score可能是差不多的,你也不能基于此来作出选择。
N、补充一个准确率
(5)准确率(Accuracy)
A = (TP + TN)/(P+N) = (TP + TN)/(TP + FN + FP + TN);(正确判断为正类的个数和正确判断为负类的个数除以总的样本个数)
反映了分类器对整个样本的判定能力–将正的判定为正,负的判断为负。
roc、auc
FPR:代表分类器预测的正类中实际负实例占所有负实例的比例。
TPR:代表分类器预测的正类中实际正实例占所有正实例的比例
TNR:代表分类器预测的负类中实际负实例占所有负实例的比例
auc的理解:简单来说其实就是随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。AUC=P(P(正样本)>P(负样本))。一个的模型有一个auc。
Auc的计算:在有M个正样本,N个负样本的数据集里。一共有MN对样本(一对样本即,一个正样本与一个负样本)。统计这MN对样本里,正样本的预测概率大于负样本的预测概率的个数。
roc曲线如图:
例:求下面预测情况的P(精确率)、R(召回率)、准确率、F1、FPR、TPR、acu
P = 3/4
R = 3/5
准确率 = 7/10
FPR = 1/5
TPR = 3/5
auc
例:Auc的计算
有2条正样本,2条负样本,总共有2*2=4对样本对(D,B),(D,A),(C,B),(C,A)
(D,B)样本对中正样本D预测的概率(0.8)大于负样本B预测的概率(0.4),记为1;同理,(D,A)–>1;(C,B)–>0;(C,A)–>1
该模型的Auc = (1+1+0+1)/4=0.75