逻辑回归roc曲线绘制
时间: 2023-10-02 11:12:42 浏览: 65
要绘制逻辑回归的ROC曲线,你可以按照以下步骤进行操作:
1. 训练逻辑回归模型并预测概率:
使用你选定的训练集来训练逻辑回归模型,并用该模型来预测测试集中每个样本属于正类的概率。
2. 计算真正例率(True Positive Rate)和假正例率(False Positive Rate):
对于不同的阈值,将预测的概率转换为类别标签,并计算真正例率和假正例率。真正例率是指被正确分类为正类的样本占所有正样本的比例,假正例率是指被错误分类为正类的样本占所有负样本的比例。
3. 绘制ROC曲线:
使用真正例率作为y轴,假正例率作为x轴,绘制ROC曲线。可以通过连接不同阈值下计算得到的真正例率和假正例率来得到曲线。
4. 计算AUC值:
计算ROC曲线下的面积(Area Under the Curve,AUC),该值可用作评估模型性能的指标。AUC值越接近1,表示模型性能越好。
下面是一个Python示例代码,演示如何使用scikit-learn库来实现上述步骤:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_curve, auc
# 训练逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)
# 预测概率
y_pred_prob = model.predict_proba(X_test)[:, 1]
# 计算真正例率和假正例率
fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob)
# 绘制ROC曲线
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % auc(fpr, tpr))
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')
plt.legend(loc="lower right")
plt.show()
# 计算AUC值
auc_score = auc(fpr, tpr)
print("AUC:", auc_score)
```
注意替换代码中的`X_train`,`y_train`,`X_test`和`y_test`为你自己的训练集和测试集数据。希望这可以帮助到你!