参考:
1、如何解释召回率、精确率?
2、什么是真、伪阳性率【详细讲解】
3、机器学习中的F1-score
一、定义
1、二分类情况下,有正、负样本(即:阳性、阴性)
2、根据真实类别、预测类别的不同,可以大致划分为以下四种情况:
1、真阳性率 TPR(True Positive Rate)
也叫召回率,Recall。是指正类样本中,有多少被正确预测为正类【针对于原来样本来说的】
正类样本:真阳、假阴
TPR=TP/(TP+FN)
区分
Precision,也叫精确率。是指被预测为阳性的样本中,有多少是预测正确的【针对于预测结果来说的】
Precision=TP/(TP+FP)
区分
Accuracy,也叫准确率。包括正、负样本
Accuracy = (TPR+TNR)/2
2、TNR、FPR、FNR,同理
真阴性率 TNR(True Negative Rate)
假阳性率 FPR(False Positive Rate)
假阴性率 FNR(True Negative Rate)
3、AUROC(Area Under ROC,ROC曲线下面积)
1、什么是ROC曲线?
【二分类是通过“阈值”来划分正、负类的】
横轴:FPR
纵轴:TPR
2、
4、AUPR(Area Under PR)
1、什么是PR曲线?
横轴:TPR
纵轴:Precision
也分别叫作
(1)查全率:说明你的模型或者方法可以预测出较多的数据
(2)查准率:说明所预测的样本的正确性较高
2、总结
pr曲线因为涉及到精确率precision计算,容易受到样本分布的影响。一般来说,用于平衡数据集。而ROC曲线则,既可以用于平衡数据集,也可以用于不平衡数据集
关于ROC、PR曲线的更详细解释
5、F1-Score
6、实现
以上指标在具体python代码中,可以调用sklearn.metrics下的对应函数
1、sklearn.metrics.roc_auc_score(y_true, y_score, *, average=‘macro’, sample_weight=None, max_fpr=None, multi_class=‘raise’, labels=None)
2、sklearn.metrics.average_precision_score(y_true, y_score, *, average=‘macro’, pos_label=1, sample_weight=None)
2、sklearn.metrics.f1_score(y_true, y_pred, labels=None, pos_label=1, average=’binary’, sample_weight=None)