Примечание
Перейти в конец чтобы скачать полный пример кода или запустить этот пример в браузере через JupyterLite или Binder.
Кривая ROC с API визуализации#
Scikit-learn определяет простой API для создания визуализаций машинного обучения. Ключевые особенности этого API позволяют быстро строить графики и выполнять визуальные настройки без пересчёта. В этом примере мы продемонстрируем, как использовать API визуализации, сравнивая ROC-кривые.
# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause
Загрузка данных и обучение SVC#
Сначала мы загружаем набор данных о вине и преобразуем его в задачу бинарной классификации. Затем мы обучаем классификатор опорных векторов на обучающем наборе данных.
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import RocCurveDisplay
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
X, y = load_wine(return_X_y=True)
y = y == 2
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
svc = SVC(random_state=42)
svc.fit(X_train, y_train)
Построение ROC-кривой#
Далее мы строим ROC-кривую одним вызовом
sklearn.metrics.RocCurveDisplay.from_estimator. Возвращаемый
svc_disp объект позволяет нам продолжать использовать уже вычисленную ROC-кривую
для SVC на будущих графиках.
svc_disp = RocCurveDisplay.from_estimator(svc, X_test, y_test)
plt.show()

Обучение случайного леса и построение ROC-кривой#
Мы обучаем классификатор случайного леса и создаем график, сравнивая его с ROC-кривой SVC.
Обратите внимание, как svc_disp использует
plot для построения ROC-кривой SVC без перевычисления значений самой ROC-кривой. Кроме того, мы передаем alpha=0.8 в функции построения графиков для настройки значений альфа кривых.
rfc = RandomForestClassifier(n_estimators=10, random_state=42)
rfc.fit(X_train, y_train)
ax = plt.gca()
rfc_disp = RocCurveDisplay.from_estimator(
rfc, X_test, y_test, ax=ax, curve_kwargs=dict(alpha=0.8)
)
svc_disp.plot(ax=ax, curve_kwargs=dict(alpha=0.8))
plt.show()

Общее время выполнения скрипта: (0 минут 0.133 секунды)
Связанные примеры
Рабочая характеристика приёмника (ROC) с перекрёстной проверкой
Многоклассовая рабочая характеристика приемника (ROC)