Nota
Haz clic aquí para descargar el código completo del ejemplo o para ejecutar este ejemplo en tu navegador a través de Binder
Curva ROC con API de visualización¶
Scikit-learn define una API simple para crear visualizaciones para el aprendizaje automático. Las características clave de esta API es permitir un graficado rápido y ajustes visuales sin recalcular. En este ejemplo, demostraremos cómo utilizar la API de visualización comparando curvas ROC.
print(__doc__)
Cargar los Datos y Entrenar un SVC¶
Primero, cargamos el conjunto de datos sobre vinos y lo convertimos en un problema de clasificación binaria. Luego, entrenamos un clasificador de vectores de soporte en un conjunto de datos de entrenamiento.
import matplotlib.pyplot as plt
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import plot_roc_curve
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)
Gráfico de la curva ROC¶
A continuación, graficamos la curva ROC con una sola invocación a sklearn.metrics.plot_roc_curve
. El objeto svc_disp
devuelto nos permite seguir utilizando la curva ROC ya calculada para el SVC en futuros gráficos.
svc_disp = plot_roc_curve(svc, X_test, y_test)
plt.show()
Entrenamiento de un Bosque Aleatorio y Graficación de la Curva ROC¶
Entrenamos un clasificador de bosque aleatorio y creamos un gráfico comparándolo con la curva ROC de SVC. Observa que svc_disp
utiliza plot
para trazar la curva ROC de SVC sin volver a calcular los valores de la propia curva roc. Además, pasamos alpha=0.8
a las funciones del gráfico para ajustar los valores alfa de las curvas.
rfc = RandomForestClassifier(n_estimators=10, random_state=42)
rfc.fit(X_train, y_train)
ax = plt.gca()
rfc_disp = plot_roc_curve(rfc, X_test, y_test, ax=ax, alpha=0.8)
svc_disp.plot(ax=ax, alpha=0.8)
plt.show()
Tiempo total de ejecución del script: (0 minutos 0.302 segundos)