sklearn评估指标Classification metrics常用指标详解及小坑

sklearn评估指标Classification metrics常用指标详解及小坑

计算评估指标需要用到预测结果和真实标签,首先说一下获得预测结果的model.predict()和model.predict_proba()的区别:

  • model.predict():得到的是预测的类别。如果是二分类,就是0或1.
  • model.predict_proba():得到的是预测类别的概率,是一个多维数组。如果是二分类,则第一列表示预测为0的概率,第二列表示预测为1的类别。如果你想获得预测为1的概率就直接取第2列:y_score = model.predict_proba(x_test)[:, 1]

下边开始讲解计算指标容易掉的坑

  1. 混淆矩阵
from sklearn.metrics import confusion_matrix
metrics_out=confusion_matrix(y_true, y_pred)  # 可以指定label

注意:y_true为真实类别,y_pred为预测的类别

  1. accuracy、precision、recall
from sklearn.metrics import accuracy_score,precision_score,recall_score
acc = accuracy_score(y_true, y_pred)
pre = precision_score(y_true, y_pred, average='macro') 
recall = recall_score(y_true, y_pred, average='macro')
# average可以自己指定:‘micro’, ‘macro’, ‘samples’, ‘weighted’, ‘binary’,默认default=’binary’

注意:y_true为真实类别,y_pred为预测的类别

  1. roc曲线
from sklearn.metrics import roc_curve
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
plt.figure()
plt.plot([0, 1], [0, 1], 'k--')
plt.plot(fpr, tpr, label='Roc(AUC = {0:.3F})'.format(AUC), lw=2)
plt.xlabel('False positive rate')
plt.ylabel('True positive rate')
plt.title('ROC curve')
plt.legend(loc='best')
plt.show()

注意:y_true为真实类别,y_scores为预测的概率

  1. auc

可以使用roc_auc_score()与auc()两种方式:
roc_auc_score()方式:

from sklearn.metrics import roc_auc_score
AUC = roc_auc_score(y_test, y_score_mean)

注意:roc_auc_score适用于二分类。y_test为真实类别,y_score_mean为预测的概率

auc()方式:由于auc()的输入为假阳性率fpr和真阳性率tpr,所以需要首先通过混淆矩阵计算出这两个值

from sklearn.metrics import roc_curve, auc
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
AUC = auc(fpr, tpr)

注意:y_true为真实类别,y_scores为预测的概率

  1. Sensitivity敏感度、Specificity特异性

对于二分类:
在这里插入图片描述
Sensitivity = TP/(TP+FN),衡量所有真实为正例的样本中有多少被预测为正例。
Specificity = TN/(FP+TN),衡量所有真实为负例的样本中有多少被预测为负例。

from sklearn.metrics import confusion_matrix
metrics_out=confusion_matrix(y_true, y_pred)
Sensitivity = metrics_out[0][0] / (metrics_out[0][0] + metrics_out[0][1])
Specificity = metrics_out[1][1] / (metrics_out[1][0] + metrics_out[1][1])

Sensitivity=recall。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值