python如何画auc

原创
ithorizon 8个月前 (09-29) 阅读数 47 #Python

绘制AUC曲线:Python中的实用指南

AUC(Area Under the Curve)是衡量模型分类性能的重要指标,在Python中,我们可以使用matplotlib和scikit-learn库来绘制AUC曲线,以下是一个简单的步骤说明:

1、我们需要安装必要的库,你可以使用pip来安装matplotlib和scikit-learn。

pip install matplotlib scikit-learn

2、我们将导入必要的库并加载数据,在这个例子中,我们将使用scikit-learn内置的乳腺癌数据集。

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, roc_curve
import matplotlib.pyplot as plt
加载数据
cancer = datasets.load_breast_cancer()
X, y = cancer.data, cancer.target
划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

3、我们将使用LogisticRegression模型进行训练,并计算预测结果的AUC。

创建并训练模型
model = LogisticRegression()
model.fit(X_train, y_train)
预测概率
y_pred_prob = model.predict_proba(X_test)[:, 1]
计算AUC
auc = roc_auc_score(y_test, y_pred_prob)
print(f'AUC: {auc:.2f}')

4、我们将绘制ROC曲线和AUC曲线。

计算ROC曲线
fpr, tpr = roc_curve(y_test, y_pred_prob)
绘制ROC曲线
plt.figure()
plt.plot(fpr, tpr, label=f'AUC = {auc:.2f}')
plt.plot([0, 1], [0, 1], 'k--')  # 随机猜测线
plt.xlim([0, 1])
plt.ylim([0, 1])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc='lower right')
plt.show()

步骤可以帮助你在Python中绘制AUC曲线,通过调整模型参数和加载不同的数据集,你可以进一步探索和优化AUC值。



热门