写一段python代码绘制ROC曲线
时间: 2024-09-18 16:18:51 浏览: 62
python实现二分类和多分类的ROC曲线教程
在Python中,我们可以使用sklearn库中的roc_curve函数来生成ROC曲线的数据,然后结合matplotlib库来绘制它。这里是一个简单的例子:
```python
from sklearn import datasets
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
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data[:, [2, 3]] # 取第2和第3特征作为样本
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)
# 使用Logistic Regression模型
model = LogisticRegression()
model.fit(X_train, y_train)
# 预测并计算真阳性率(TPR)和假阳性率(FPR)
y_pred_proba = model.predict_proba(X_test)[:, 1]
fpr, tpr, _ = roc_curve(y_test, y_pred_proba)
# 计算AUC值(曲线下面积)
auc_value = auc(fpr, tpr)
# 绘制ROC曲线
plt.figure(figsize=(8, 6))
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % auc_value)
plt.plot([0, 1], [0, 1], 'k--', lw=2, color='r', label='Random')
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()
阅读全文