使用Python对不同数据用logistic模型绘制的ROC曲线放在同一张图中
时间: 2024-02-25 08:56:39 浏览: 72
要将不同数据用logistic模型绘制的ROC曲线放在同一张图中,我们需要按照以下步骤进行:
1. 导入需要使用的库和数据
2. 将数据分为训练集和测试集
3. 对训练集进行特征选择和数据预处理
4. 使用训练集训练logistic模型
5. 对测试集进行预测并计算ROC曲线
6. 将不同数据的ROC曲线绘制在同一张图中
以下是一个示例代码,展示如何绘制不同数据用logistic模型绘制的ROC曲线放在同一张图中。
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
# 导入数据
data1 = pd.read_csv('data1.csv')
data2 = pd.read_csv('data2.csv')
# 将数据分为训练集和测试集
X_train1, X_test1, y_train1, y_test1 = train_test_split(data1.drop('label', axis=1), data1['label'], test_size=0.3, random_state=0)
X_train2, X_test2, y_train2, y_test2 = train_test_split(data2.drop('label', axis=1), data2['label'], test_size=0.3, random_state=0)
# 对训练集进行特征选择和数据预处理
# ...
# 使用训练集训练logistic模型
model1 = LogisticRegression()
model1.fit(X_train1, y_train1)
model2 = LogisticRegression()
model2.fit(X_train2, y_train2)
# 对测试集进行预测并计算ROC曲线
fpr1, tpr1, _ = roc_curve(y_test1, model1.predict_proba(X_test1)[:, 1])
roc_auc1 = auc(fpr1, tpr1)
fpr2, tpr2, _ = roc_curve(y_test2, model2.predict_proba(X_test2)[:, 1])
roc_auc2 = auc(fpr2, tpr2)
# 将不同数据的ROC曲线绘制在同一张图中
plt.figure()
plt.plot(fpr1, tpr1, color='darkorange', lw=2, label='Data 1 ROC curve (area = %0.2f)' % roc_auc1)
plt.plot(fpr2, tpr2, color='blue', lw=2, label='Data 2 ROC curve (area = %0.2f)' % roc_auc2)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
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 example')
plt.legend(loc="lower right")
plt.show()
```
这将绘制两个ROC曲线,其中每个曲线都有一个标签,然后我们添加图例,设置横轴和纵轴标签,以及图表标题。
阅读全文