本文将介绍如何使用 Scikit-Learn 库实现多类分类的 AUC-ROC 计算方法。

AUC-ROC 简介

AUC-ROC(Area Under the Receiver Operating Characteristic Curve)是评估分类模型性能的一个指标,它表示在所有可能的阈值下,模型真正例率(True Positive Rate, TPR)与假正例率(False Positive Rate, FPR)之间曲线下方的面积。AUC-ROC 值的范围是 0 到 1,值越高表示模型性能越好。

实现步骤

  1. 准备数据集
  2. 训练模型
  3. 计算多类 AUC-ROC

1. 准备数据集

首先,我们需要准备一个多类分类的数据集。这里我们以鸢尾花数据集为例。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

iris = load_iris()
X = iris.data
y = iris.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

2. 训练模型

接下来,我们使用逻辑回归模型进行训练。

from sklearn.linear_model import LogisticRegression

model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)

3. 计算多类 AUC-ROC

最后,我们使用 roc_auc_score 函数计算多类 AUC-ROC。

from sklearn.metrics import roc_auc_score

y_score = model.predict_proba(X_test)
y_true = y_test

roc_auc = roc_auc_score(y_true, y_score, multi_class='ovr')
print(f'多类 AUC-ROC: {roc_auc}')

扩展阅读

想要了解更多关于 Scikit-Learn 的知识,可以访问我们的Scikit-Learn 教程页面。

相关图片

  • Iris Data
  • Logistic Regression Model