Apprentissage supervisé avec scikit-learn
George Boorman
Core Curriculum Manager
Régression de crête/lasso : choisir alpha
KNN : choisir n_neighbors
Hyperparamètres : paramètres spécifiés avant l’ajustement du modèle
alpha
et n_neighbors
Essayez un grand nombre de valeurs d’hyperparamètres
Ajustez toutes les valeurs séparément
Examinez leurs performances
Choisissez les valeurs les plus performantes
C’est ce qu’on appelle le réglage des hyperparamètres
Il est essentiel d’utiliser la validation croisée pour éviter un surajustement de l’ensemble de test
Nous pouvons diviser les données et effectuer une validation croisée sur l’ensemble d’apprentissage
Nous conservons l’ensemble de test pour l’évaluation finale
from sklearn.model_selection import GridSearchCV
kf = KFold(n_splits=5, shuffle=True, random_state=42)
param_grid = {"alpha": np.arange(0.0001, 1, 10), "solver": ["sag", "lsqr"]}
ridge = Ridge()
ridge_cv = GridSearchCV(ridge, param_grid, cv=kf)
ridge_cv.fit(X_train, y_train)
print(ridge_cv.best_params_, ridge_cv.best_score_)
{'alpha': 0.0001, 'solver': 'sag'}
0.7529912278705785
from sklearn.model_selection import RandomizedSearchCV
kf = KFold(n_splits=5, shuffle=True, random_state=42) param_grid = {'alpha': np.arange(0.0001, 1, 10), "solver": ['sag', 'lsqr']} ridge = Ridge()
ridge_cv = RandomizedSearchCV(ridge, param_grid, cv=kf, n_iter=2) ridge_cv.fit(X_train, y_train)
print(ridge_cv.best_params_, ridge_cv.best_score_)
{'solver': 'sag', 'alpha': 0.0001}
0.7529912278705785
test_score = ridge_cv.score(X_test, y_test)
print(test_score)
0.7564731534089224
Apprentissage supervisé avec scikit-learn