Ejercicio de validación cruzada en el conjunto de datos Digits

Un ejercicio tutorial utilizando la validación cruzada con una SVM en el conjunto de datos Digits.

Este ejercicio se utiliza en la parte Generadores de validación cruzada de la sección Selección de modelos: elección de estimadores y sus parámetros del Un tutorial sobre aprendizaje estadístico para el procesamiento de datos científicos.

plot cv digits
print(__doc__)


import numpy as np
from sklearn.model_selection import cross_val_score
from sklearn import datasets, svm

X, y = datasets.load_digits(return_X_y=True)

svc = svm.SVC(kernel='linear')
C_s = np.logspace(-10, 0, 10)

scores = list()
scores_std = list()
for C in C_s:
    svc.C = C
    this_scores = cross_val_score(svc, X, y, n_jobs=1)
    scores.append(np.mean(this_scores))
    scores_std.append(np.std(this_scores))

# Do the plotting
import matplotlib.pyplot as plt
plt.figure()
plt.semilogx(C_s, scores)
plt.semilogx(C_s, np.array(scores) + np.array(scores_std), 'b--')
plt.semilogx(C_s, np.array(scores) - np.array(scores_std), 'b--')
locs, labels = plt.yticks()
plt.yticks(locs, list(map(lambda x: "%g" % x, locs)))
plt.ylabel('CV score')
plt.xlabel('Parameter C')
plt.ylim(0, 1.1)
plt.show()

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

Galería generada por Sphinx-Gallery