Кривая 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)
SVC(random_state=42)
В среде Jupyter, пожалуйста, перезапустите эту ячейку, чтобы показать HTML-представление, или доверьтесь блокноту.
На GitHub HTML-представление не может отображаться, попробуйте загрузить эту страницу с помощью nbviewer.org.



Построение ROC-кривой#

Далее мы строим ROC-кривую одним вызовом sklearn.metrics.RocCurveDisplay.from_estimator. Возвращаемый svc_disp объект позволяет нам продолжать использовать уже вычисленную ROC-кривую для SVC на будущих графиках.

svc_disp = RocCurveDisplay.from_estimator(svc, X_test, y_test)
plt.show()
plot roc curve visualization api

Обучение случайного леса и построение 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()
plot roc curve visualization api

Общее время выполнения скрипта: (0 минут 0.133 секунды)

Связанные примеры

Рабочая характеристика приёмника (ROC) с перекрёстной проверкой

Рабочая характеристика приёмника (ROC) с перекрёстной проверкой

Основные нововведения в выпуске scikit-learn 0.22

Основные нововведения в выпуске scikit-learn 0.22

Многоклассовая рабочая характеристика приемника (ROC)

Многоклассовая рабочая характеристика приемника (ROC)

Кривая компромисса ошибок обнаружения (DET)

Кривая компромисса ошибок обнаружения (DET)

Галерея, созданная Sphinx-Gallery