混淆矩阵,准确率,召回率,特异性,ROC曲线绘制

混淆矩阵,准确率,召回率,特异性,ROC曲线绘制

一、混淆矩阵

pos (预测的)neg (预测的)
pos (真正的)TPFN
neg (真正的)FPTN

TP : 正例预测成正例(预测正确)
TN : 负–>负(预测正确)
FP : 负–>正(预测错误)
FN : 正–>负(预测错误)

  • 鉴于这四个东西容易混淆(矩阵混淆,我们可不能混淆。。),可以这样记忆:
  • T,F分别表示预测正确或错误;P,N分别表示XXX预测成了正样本或负样本。
  • 连起来就是“XXX被正确(错误)地预测成了正(负)样本”
  • 例如:FP=被False(错误)地预测成了Positive(正样本)

二、评价指标

  • 准确率 :所有样本中预测准确的比例。 Accuracy=(TP+TN)/(TP+FN+FP+TN)
  • 召回率(敏感度):预测正确的正样本在所有正样本中的占比。 Recall=TP/(TP+FN)
  • 特异性 :预测正确的负样本在所有负样本中的占比。 Specificity=TN/(TN+FP)

三、ROC曲线与AUC

  • 话不多说,上代码!
from sklearn import metrics
import pylab as plt

pred= data_appended.y_pred_1
y = data_appended.y

fpr, tpr, threshold = metrics.roc_curve(y, pred)
roc_auc = metrics.auc(fpr, tpr)
plt.figure(figsize=(6,6))
plt.title('Test ROC')
plt.plot(fpr, tpr, 'b', label = 'Test AUC = %0.3f' % roc_auc)
plt.legend(loc = 'lower right')
plt.plot([0, 1], [0, 1],'r--')
plt.xlim([0, 1])
plt.ylim([0, 1])
plt.ylabel('True Positive Rate')
plt.xlabel('False Positive Rate')
plt.show()

在这里插入图片描述

  • x : FP
  • y : TP
  • AUC : ROC曲线包围的下方面积∈[0.5,1],越靠近红色虚线,模型的表现越差。如果<0.5,说明TP、TF搞反了,曲线在红色虚线下
  • ROC曲线越接近左上角(AUC越大),模型越好

发表于:2019/10/14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值