混淆矩阵

在这里插入图片描述
对于二分类问题,用0和1表示两种类别。
TP:真实为1且预测正确的样本个数
FN:真实为1但预测错误的样本个数
FP:真实为0但预测错误的样本个数
TN:真实为0且预测正确的样本个数

可以直接用sklearn库得到混淆矩阵,下面是之前数模写的代码(数据不在了,就只有运行结果)

from sklearn import metrics
print("Confusion matrix")
print(metrics.confusion_matrix(y_test,y_predict))

在这里插入图片描述
可以用seaborn库可视化混淆矩阵(数据是三分类的,随便设的):

import seaborn as sns
from sklearn import metrics
import pandas as pd

cm = metrics.confusion_matrix(y_test,y_predict)
df = pd.DataFrame(cm)
ax = sns.heatmap(df,cmap="Blues",annot=True)
ax.set_title('confusion matrix')
ax.set_xlabel('predict')
ax.set_ylabel('true')

Out:
在这里插入图片描述
matplotlib也是可以画出的,只不过没有seaborn画图的代码简便,还有seaborn的配色还是蛮好看的,可以通过cmap自己调色,也可以set_palette设置调色板。

precision、recall、F1 score、support

precision精度:
precision = TP/(TP+FP)
recall召回率:
recall = TP/(TP+FN)
F1-score:
F1 Score = 2*(precision * recall) / (precision + recall)

from sklearn.metrics import classification_report
report = classification_report(y_test,ly_predict)
print(report)

在这里插入图片描述

AUC和ROC曲线

真正率TPR:预测为正且实际为正的样本占所有正例样本的比例
TPR=TP/(TP+FN)

假正率FPR:预测为正且实际为负的样本占所有负例样本的比例
FPR=FP/(FP+TN)
ROC曲线的横坐标为假正率FPR,纵坐标为真正率TPR。
AUC代表ROC曲线下方区域的面积,值越大说明模型相对越好。(很多竞赛的指标值就是AUC)

import matplotlib.pyplot as plt
from sklearn.metrics import roc_auc_score

#用metrics.roc_curve()求出 fpr, tpr, threshold
fpr, tpr, threshold = metrics.roc_curve(y_test, lly_predict)

#用metrics.auc求出roc_auc的值
roc_auc = metrics.auc(fpr,tpr)

#将plt.plot里的内容填写完整
plt.plot(fpr, tpr, label = 'AUC = %0.2f' % roc_auc)

#将图例显示在右下方
plt.legend(loc = 'lower right') 

#画出一条红色对角虚线
plt.plot([0, 1], [0, 1],'r--') 

#设置横纵坐标轴范围
plt.xlim([-0.01, 1.01]) 
plt.ylim([-0.01, 1.01])

#设置横纵名称以及图形名称
plt.ylabel('True Positive Rate')
plt.xlabel('False Positive Rate')
plt.title('Receiver Operating Characteristic Curve')
plt.show()

Out:
在这里插入图片描述
计算AUC值:

from sklearn.metrics import roc_auc_score

score_auc = roc_auc_score(y_test, y_predict)
print("score",score_auc)

KS曲线

KS指标:
KS = max|TPR - FPR|
在这里插入图片描述

PSI群体稳定性指标

前面的指标都是评估模型准确性的,PSI指标是用来评估稳定性的。PSI是最常见的模型稳定性评估指标,它可以衡量测试样本及模型开发样本预测概率的分布差异,其值越小模型越稳定。
在这里插入图片描述
PSI的计算方法如下:
在这里插入图片描述
若模型更稳定,那么P1和P2上各区间样本占比应该是相近的,不会变动很大。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐