分类模型评估指标

混淆矩阵

在这里插入图片描述
对于二分类问题,用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上各区间样本占比应该是相近的,不会变动很大。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
sklearn中,多分类模型的评价指标包括准确率、混淆矩阵、精确率、召回率、F1-score、支持度等。 首先,准确率是评价多分类模型性能的常用指标之一。它表示模型预测正确的样本占总样本数量的比例。准确率越高,模型的性能越好。 其次,混淆矩阵是多分类模型评价的重要工具。它是一个正方形矩阵,行表示实际类别,列表示预测类别。矩阵的每个元素表示被分为某个类别的样本数量。通过分析混淆矩阵可以得到模型在不同类别上的预测情况。 除了准确率和混淆矩阵之外,精确率和召回率也是常用的多分类模型评价指标之一。精确率表示在所有被预测为某一类别的样本中,实际属于该类别的比例。召回率表示在所有实际属于某一类别的样本中,被正确预测为该类别的比例。 F1-score是综合衡量精确率和召回率的指标,它是二者的调和均值,可以更全面地评估模型的性能。F1-score越高,模型的性能越好。 最后,支持度指标表示每个类别在样本中的出现次数。该指标可以衡量模型对各个类别的预测能力。支持度越高,表示该类别在样本中的比例越大。 在sklearn中,我们可以使用相应的函数或方法计算这些多分类模型评价指标,如准确率可以使用accuracy_score函数,混淆矩阵可以使用confusion_matrix函数,精确率和召回率可以使用classification_report函数,F1-score可以使用f1_score函数,支持度可以使用value_counts方法等。通过这些评价指标,我们可以对多分类模型的性能进行全面的评估和比较。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值