Graficando curvas de validación

En este gráfico puedes ver las puntuaciones de entrenamiento y de validación de una SVM para diferentes valores del parámetro gamma del núcleo. Para valores muy bajos de gamma, puedes ver que tanto la puntuación de entrenamiento como la de validación son bajas. Esto se llama subajuste. Los valores medios de gamma darán lugar a valores altos para ambas puntuaciones, es decir, el clasificador está funcionando bastante bien. Si gamma es demasiado alta, el clasificador se sobreajustará, lo que significa que la puntuación de entrenamiento es buena pero la de validación es pobre.

Validation Curve with SVM
print(__doc__)

import matplotlib.pyplot as plt
import numpy as np

from sklearn.datasets import load_digits
from sklearn.svm import SVC
from sklearn.model_selection import validation_curve

X, y = load_digits(return_X_y=True)

param_range = np.logspace(-6, -1, 5)
train_scores, test_scores = validation_curve(
    SVC(), X, y, param_name="gamma", param_range=param_range,
    scoring="accuracy", n_jobs=1)
train_scores_mean = np.mean(train_scores, axis=1)
train_scores_std = np.std(train_scores, axis=1)
test_scores_mean = np.mean(test_scores, axis=1)
test_scores_std = np.std(test_scores, axis=1)

plt.title("Validation Curve with SVM")
plt.xlabel(r"$\gamma$")
plt.ylabel("Score")
plt.ylim(0.0, 1.1)
lw = 2
plt.semilogx(param_range, train_scores_mean, label="Training score",
             color="darkorange", lw=lw)
plt.fill_between(param_range, train_scores_mean - train_scores_std,
                 train_scores_mean + train_scores_std, alpha=0.2,
                 color="darkorange", lw=lw)
plt.semilogx(param_range, test_scores_mean, label="Cross-validation score",
             color="navy", lw=lw)
plt.fill_between(param_range, test_scores_mean - test_scores_std,
                 test_scores_mean + test_scores_std, alpha=0.2,
                 color="navy", lw=lw)
plt.legend(loc="best")
plt.show()

Tiempo total de ejecución del script: ( 0 minutos 15.235 segundos)

Galería generada por Sphinx-Gallery