.使用Python的scikit-learn库来实现一个逻辑回归模型。你需要使用糖尿病数据集(Diabetes dataset)来训练模型,并预测患者是否患有糖尿病。最后最后使用混淆矩阵可视化模型性能。 提示: 目标变量的值大于median的视为1,小于等于median的视为0
时间: 2024-10-26 08:17:11 浏览: 8
使用scikit-learn内置的波士顿房价数据集来训练模型
在Python中,我们可以使用scikit-learn库来实现逻辑回归模型并分析糖尿病数据集。以下是实现这一过程的步骤:
1. **导入必要的库**:
```python
import pandas as pd
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix, classification_report, roc_auc_score
import seaborn as sns
import matplotlib.pyplot as plt
```
2. **加载糖尿病数据集**:
```python
diabetes = datasets.load_diabetes()
X = diabetes.data
y = diabetes.target
# 将连续目标变量二分类,比如按照中位数将大于median的设为1,否则设为0
median = np.median(y)
y_binary = y > median
```
3. **划分训练集和测试集**:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y_binary, test_size=0.2, random_state=42)
```
4. **创建并训练逻辑回归模型**:
```python
logreg = LogisticRegression(max_iter=1000) # 调整迭代次数防止警告
logreg.fit(X_train, y_train)
```
5. **预测**:
```python
y_pred = logreg.predict(X_test)
```
6. **混淆矩阵可视化**:
```python
conf_mat = confusion_matrix(y_test, y_pred)
sns.heatmap(conf_mat, annot=True, cmap='Blues', fmt='g')
plt.xlabel('Predicted Label')
plt.ylabel('True Label')
plt.title('Confusion Matrix')
plt.show()
```
7. **模型评估**:
```python
print("Classification Report:")
print(classification_report(y_test, y_pred))
print("ROC AUC Score:", roc_auc_score(y_test, y_pred)) # 可以评估二分类问题的性能
```
通过以上步骤,你可以完成糖尿病数据集上逻辑回归模型的训练、预测以及性能的初步评估和混淆矩阵的可视化。
阅读全文