导入必要的包

import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.metrics import roc_curve, auc

读取数据

data = pd.read_csv('data.csv')

划分训练集和测试集

train = data.sample(frac=0.7, random_state=1) # 随机抽样70%作为训练集 test = data.drop(train.index) # 剩余的作为测试集

构建模型(这里以逻辑回归为例)

from sklearn.linear_model import LogisticRegression x_train = train.iloc[:, :-1] # 取出训练集的自变量 y_train = train.iloc[:, -1] # 取出训练集的因变量 x_test = test.iloc[:, :-1] # 取出测试集的自变量 y_test = test.iloc[:, -1] # 取出测试集的因变量 clf = LogisticRegression() # 构建逻辑回归模型 clf.fit(x_train, y_train) # 在训练集上拟合模型 probas_ = clf.predict_proba(x_test) # 对测试集进行预测

计算ROC曲线和AUC值

fpr, tpr, thresholds = roc_curve(y_test, probas_[:, 1]) # 计算FPR,TPR以及阈值 roc_auc = auc(fpr, tpr) # 计算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) # 绘制ROC曲线 plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--') # 绘制对角线 plt.xlim([0.0, 1.0]) # 设置X轴范围 plt.ylim([0.0, 1.05]) # 设置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() # 显示图

import pandas as pdimport numpy as npimport matplotlibpyplot as pltfrom sklearnmetrics import roc_curve auc# 读取数据data = pdread_csvdatacsv# 划分训练集和测试集train = datasamplefrac=07 random_state=1test = datad

原文地址: https://www.cveoy.top/t/topic/gI2l 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录