模型评价指标及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,往往表示模型有异常。