AUC-ROC曲线评估分类模型性能

目录

1.简介    

2.计算方法

3.代码实现


1.简介    

   AUC-ROC曲线(Area Under the Curve - Receiver Operating Characteristic Curve)是一种评估分类模型性能的方法,特别是在二分类问题中。ROC曲线通过绘制不同阈值下真正例率(True Positive Rate, TPR)和假正例率(False Positive Rate, FPR)来展示模型的性能。它将真正例率(TPR,也称为召回率或灵敏度)作为y轴,假正例率(FPR,1 - 特异度)作为x轴。曲线下的面积(AUC)提供了模型整体性能的一个度量。本代码将使用决策树进行分类任务,并使用AUC-ROC曲线来评估模型的性能。

2.计算方法

y轴:TPR=\frac{TP}{TP+FN} ,即真实值为1的召回率。

x轴:FPR=\frac{FP}{TN+FP} ,即真实值为0的预测错误的概率。

AUC:AUC是ROC曲线下的面积,它表示模型的分类能力。AUC值的范围是0到1,值越高表示模型的分类性能越好。AUC值为0.5时,模型的性能不比随机猜测好;AUC值为1时,即TPR为1,FPR为0时,模型具有完美的分类能力。

3.代码实现

import pandas as pd

#将变量与结果划分开
data = datas.iloc[:, :-1]
target = datas.iloc[:, -1]

from sklearn.model_selection import train_test_split

data_train, data_test, target_train, target_test = train_test_split(data, target, test_size = 0.2, random_state = 60)
#定义决策树
from sklearn import tree
dtr = tree.DecisionTreeClassifier(criterion = 'gini', max_depth = 6, random_state = 42, max_leaf_nodes = 10) 
dtr.fit(data_train, target_train)

# 分类的性能评价
'''AUC值的计算'''
y_pred_proba = dtr.predict_proba(data_test)
# 使用测试集数据预测概率,predict_proba方法返回每个样本属于每个类别的概率
a = y_pred_proba[:, 1]
# 从预测概率中提取正类(即1)的概率
auc_result = metrics.roc_auc_score(target_test, a)
# 计算AUC值,使用测试集的真实标签和预测的正类概率

'''绘制ROC-AUC曲线'''
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve  #得到不同阈值的ROC

fpr, tpr, thresholds = roc_curve(target_test, a)
# 计算ROC曲线上的点,fpr是假正例率,tpr是真正例率,thresholds是对应的阈值

#绘制ROC曲线
plt.figure()
plt.plot(fpr, tpr, color= 'darkorange', lw=2, label='ROC curve(area=%0.2f)'% auc_result)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')  #函数来绘制一条从点(0,0)到点(1,1)的线段。
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend()
plt.show()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值