API визуализации Scikit-Learn

Machine LearningMachine LearningBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Scikit-learn - это популярная библиотека на Python, которая предоставляет простой и эффективный API для машинного обучения. Одной из ключевых особенностей scikit-learn является его встроенный API визуализации, благодаря которому легко генерировать визуализации для моделей машинного обучения. В этом лабе мы исследуем, как использовать API визуализации scikit-learn для сравнения кривых ROC для двух различных классификаторов.

Советы по работе с ВМ

После запуска ВМ кликните в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/ensemble("Ensemble Methods") sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/svm("Support Vector Machines") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/metrics("Metrics") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/ensemble -.-> lab-49274{{"API визуализации Scikit-Learn"}} sklearn/svm -.-> lab-49274{{"API визуализации Scikit-Learn"}} sklearn/model_selection -.-> lab-49274{{"API визуализации Scikit-Learn"}} sklearn/metrics -.-> lab-49274{{"API визуализации Scikit-Learn"}} sklearn/datasets -.-> lab-49274{{"API визуализации Scikit-Learn"}} ml/sklearn -.-> lab-49274{{"API визуализации Scikit-Learn"}} end

Загрузка данных и обучение SVC

Начнем с загрузки датасета с виноградными винами и преобразования его в задачу бинарной классификации. Затем обучим классификатор на векторах поддержки на наборе обучающих данных.

import matplotlib.pyplot as plt
from sklearn.svm import SVC
from sklearn.metrics import RocCurveDisplay
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split

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 с использованием функции RocCurveDisplay.from_estimator. Эта функция принимает на вход обученный классификатор, тестовый набор данных и истинные метки, и возвращает объект, который можно использовать для построения кривой ROC. Затем мы вызовем метод show(), чтобы отобразить график.

svc_disp = RocCurveDisplay.from_estimator(svc, X_test, y_test)
svc_disp.show()

Обучение случайного леса и построение кривой ROC

В этом шаге мы обучим классификатор случайного леса и построим его кривую ROC рядом с кривой ROC для SVC. Для этого мы создадим новый объект RandomForestClassifier, обучим его на тренировочных данных, а затем создадим новый объект RocCurveDisplay с использованием этого классификатора. Мы также передадим параметр ax в эту функцию, чтобы построить кривые на одной оси. Наконец, мы вызовем метод plot() объекта svc_disp, чтобы построить кривую ROC для SVC.

from sklearn.ensemble import RandomForestClassifier

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, alpha=0.8)
svc_disp.plot(ax=ax, alpha=0.8)
plt.show()

Обзор

В этом лабе мы изучили, как использовать API визуализации scikit-learn для построения кривых ROC для двух различных классификаторов. Начали с загрузки датасета с виноградными винами и обучения классификатора на векторах поддержки на тренировочных данных. Затем построили кривую ROC для этого классификатора с использованием функции RocCurveDisplay. Наконец, обучили классификатор случайного леса и построили его кривую ROC рядом с кривой ROC для SVC. API визуализации scikit-learn позволяет легко сравнивать разные классификаторы и визуализировать их производительность.