1.读取数据集data.xlsx; 2.利用RFECV进行特征筛选后进行LogisticRegression建模; 绘制训练集和验证集的模型ROC曲线。 Spyder代码
时间: 2024-11-09 20:29:43 浏览: 63
首先,你需要安装一些必要的库,如pandas、numpy、sklearn等。以下是使用Spyder编写Python代码的一个示例:
```python
# 导入所需的库
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split, RFECV
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
# 1. 读取数据集
# 假设data.xlsx位于当前工作目录下
df = pd.read_excel('data.xlsx')
# 检查数据是否存在并查看前几行
print(df.head())
# 2. 特征工程与划分数据集
X = df.drop('target_column', axis=1) # 将'target_column'替换为你的目标列名
y = df['target_column'] # 目标变量
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)
# 使用RFECV进行特征选择
logreg = LogisticRegression()
selector = RFECV(logreg, cv=5)
selector.fit(X_train, y_train)
X_train_selected = selector.transform(X_train)
X_val_selected = selector.transform(X_val)
# 3. 建立Logistic Regression模型
model = LogisticRegression()
model.fit(X_train_selected, y_train)
# 计算预测值
y_pred_proba = model.predict_proba(X_val_selected)[:, 1]
# 4. 绘制训练集和验证集的ROC曲线
fpr, tpr, _ = roc_curve(y_val, y_pred_proba)
roc_auc = auc(fpr, tpr)
plt.figure(figsize=(8,6))
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], 'k--')
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 (ROC)')
plt.legend(loc="lower right")
plt.show()
```
这里假设`target_column`是你想要预测的目标列名称。记得将代码中的相应部分替换为实际的数据文件路径、列名以及目标列。
阅读全文
相关推荐


















