API de Visualização do Scikit-learn

Beginner

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

Introdução

O Scikit-learn é uma popular biblioteca Python que fornece uma API simples e eficiente para tarefas de machine learning. Uma das características principais do scikit-learn é sua API de visualização integrada, que facilita a geração de visualizações para modelos de machine learning. Neste laboratório, exploraremos como usar a API de visualização do scikit-learn para comparar curvas ROC para dois classificadores diferentes.

Dicas da Máquina Virtual

Após o término da inicialização da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação de operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente para você.

Carregar Dados e Treinar um SVC

Começaremos carregando o conjunto de dados de vinho e convertendo-o em um problema de classificação binária. Em seguida, treinaremos um classificador de vetores de suporte no conjunto de dados de treinamento.

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)

Plotar a Curva ROC

Em seguida, plotaremos a curva ROC usando a função RocCurveDisplay.from_estimator. Esta função recebe o classificador treinado, o conjunto de dados de teste e as etiquetas verdadeiras como entradas e retorna um objeto que pode ser usado para plotar a curva ROC. Em seguida, chamaremos o método show() para exibir o gráfico.

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

Treinar uma Floresta Aleatória e Plotar a Curva ROC

Neste passo, treinaremos um classificador de floresta aleatória e plotaremos sua curva ROC ao lado da curva ROC do SVC. Para fazer isso, criaremos um novo objeto RandomForestClassifier, ajustá-lo aos dados de treinamento e, em seguida, criaremos um novo objeto RocCurveDisplay usando este classificador. Também passaremos o parâmetro ax para esta função para plotar as curvas no mesmo eixo. Finalmente, chamaremos o método plot() do objeto svc_disp para plotar a curva ROC do 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()

Resumo

Neste laboratório, exploramos como usar a API de visualização do scikit-learn para plotar curvas ROC para dois classificadores diferentes. Começamos carregando o conjunto de dados de vinho e treinando um classificador de vetores de suporte nos dados de treinamento. Em seguida, plotamos a curva ROC para este classificador usando a função RocCurveDisplay. Finalmente, treinamos um classificador de floresta aleatória e plotamos sua curva ROC ao lado da curva ROC do SVC. A API de visualização do scikit-learn facilita a comparação de diferentes classificadores e a visualização de seu desempenho.