ROC曲线绘制及AUC值计算 - 基于Logistic回归模型
使用Python绘制ROC曲线并计算AUC值
本代码使用Python和sklearn库,利用Logistic回归模型,绘制ROC曲线并计算AUC值,用于评估模型的性能。
1. 导入库
# 导入需要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc
from sklearn.model_selection import train_test_split
2. 读取数据
# 读取数据
data = pd.read_csv('mdcrime.csv')
3. 划分训练集和测试集
# 划分训练集和测试集
X=data.iloc[:,3:4] # 取'MEDAGE'这一列作为自变量
y=data.iloc[:,-1] # 取'Crime'这一列作为因变量
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=10)
4. 训练模型
# 训练模型
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression()
clf.fit(X_train, y_train)
5. 预测测试集结果并计算预测概率
# 预测测试集结果并计算预测概率
probas_ = clf.predict_proba(X_test)
6. 计算ROC曲线和AUC值
# 计算ROC曲线和AUC值
fpr, tpr, thresholds = roc_curve(y_test, probas_[:, -1])
roc_auc = auc(fpr, tpr)
7. 绘制ROC曲线
# 绘制ROC曲线
plt.figure(figsize=(8, 6)) # 设置画布尺寸
lw = 2 # 设置线宽
plt.plot(fpr, tpr, color='darkorange', lw=lw, label='ROC curve (area = %0.2f)' % roc_auc) # 绘制ROC曲线
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--') # 绘制对角线
plt.xlim([0.0, 1.0]) # 设置x轴范围
plt.ylim([0.0, 2]) # 设置y轴范围
plt.xlabel('False Positive Rate') # 设置x轴标签
plt.ylabel('True Positive Rate') # 设置y轴标签
plt.title('Receiver Operating Characteristic') # 设置标题
plt.legend(loc="lower right") # 设置图例位置
plt.show() # 显示图形
代码说明:
roc_curve(y_test, probas_[:, -1]):计算ROC曲线的三个参数:假阳性率(fpr)、真阳性率(tpr)和阈值(thresholds)。auc(fpr, tpr):计算AUC值。plt.plot(fpr, tpr, color='darkorange', lw=lw, label='ROC curve (area = %0.2f)' % roc_auc):绘制ROC曲线。plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--'):绘制对角线,代表随机分类器的性能。
代码运行结果:
运行代码后,将生成一个包含ROC曲线的图形。该图形显示了模型在不同阈值下的性能,以及AUC值。AUC值越高,模型的性能越好。
注意:
- 本代码使用的数据集
mdcrime.csv需要自行准备。 - 该代码仅供参考,需要根据实际情况进行调整。
原文地址: https://www.cveoy.top/t/topic/oxYd 著作权归作者所有。请勿转载和采集!