模型评价指标及python绘图


前提条件:

True  Positive(TP) : 预测为正样本,实际也为正样本
False Positive(FP) : 预测为正样本,实际为负样本
True Negative(TN) : 预测为负样本,实际也为负样本
False Negative(FN): 预测为负样本,实际为正样本

 

1.准确率(accuracy)

 accuracy = (TP+TN)/(TP+TN+FP+FN)

2.精准率(precision)——正类中预测正确的样本数量占预测为正样本的个数

Precision = TP/(TP+FP)

3.召回率(recall)

recall = TP/(TP+FN)

3.F1-score

4.P-R曲线

5.ROC、AUC曲线

实际正例中分类正确的:tpr = TP/(TP+FN)——纵轴

实际负例中分类错误的:fpr = FP/(TN+FP)——负轴

from sklearn import metrics

fpr, tpr, thresholds = metrics.roc_curve(y_true, y_pred, pos_label="正类的标签")

#AUC值
metrics.auc(fpr, tpr)

6.KS指标

Python无现成函数

1)ks和AUC一样,都是利用TPR、FPR两个指标来评价模型的整体训练效果。

2)不同之处在于,ks取的是TPR和FPR差值的最大值,能够找到一个最优的阈值;AUC只评价了模型的整体训练效果,并没有指出如何划分类别让预估的效果达到最好,就是没有找到好的切分阈值。

3)与PR曲线相比,AUC和KS受样本不均衡的影响较小,而PR受其影响较大。

ks值<0.2,一般认为模型没有区分能力。

ks值[0.2,0.3],模型具有一定区分能力,勉强可以接受

ks值[0.3,0.5],模型具有较强的区分能力。

ks值大于0.75,往往表示模型有异常。