Python 逻辑回归模型的ROC曲线绘制和AUC值计算
- 导入所需的包和模块
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
- 读取数据,使用pandas的read_csv函数读取csv格式的数据文件
# 读取数据
data = pd.read_csv('mdcrime.csv')
- 划分训练集和测试集,使用sklearn的train_test_split函数将数据集划分为训练集和测试集
# 划分训练集和测试集
from sklearn.linear_model import LogisticRegression
X=data.iloc[:,3:4]
y=data.iloc[:,-1]
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=10)
- 构建逻辑回归模型,使用sklearn的LogisticRegression函数来构建逻辑回归模型,并使用训练集进行模型训练
clf = LogisticRegression()
clf.fit(X_train, y_train)
- 预测测试集结果,使用训练好的模型对测试集进行预测,并获取预测结果的概率
probas_ = clf.predict_proba(X_test)
- 计算ROC曲线和AUC值,使用sklearn的roc_curve和auc函数来计算ROC曲线和AUC值
# 计算ROC曲线和AUC值
fpr, tpr, thresholds = roc_curve(y_test, probas_[:, -1])
roc_auc = auc(fpr, tpr)
- 绘制ROC曲线,使用matplotlib库绘制ROC曲线图,并显示AUC值
# 绘制ROC曲线
plt.figure(figsize=(8, 6))
lw = 2
plt.plot(fpr, tpr, color='darkorange',
lw=lw, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 2])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc='lower right')
- 显示ROC曲线图,使用matplotlib库的show函数来显示ROC曲线图
plt.show()
原文地址: https://www.cveoy.top/t/topic/oxYa 著作权归作者所有。请勿转载和采集!