Învățare supravegheată cu scikit-learn
George Boorman
Core Curriculum Manager
Regresie Ridge/Lasso: alegerea alpha
KNN: alegerea n_neighbors
Hiperparametri: parametri specificați înainte de antrenarea modelului
alpha și n_neighborsTestați mai multe valori ale hiperparametrilor
Antrenați modelul separat pentru fiecare
Evaluați performanța fiecăruia
Alegeți valorile cu cele mai bune rezultate
Aceasta se numește ajustarea hiperparametrilor
Este esențial să folosiți validarea încrucișată pentru a evita supraajustarea pe setul de test
Datele pot fi împărțite, iar validarea încrucișată aplicată pe setul de antrenament
Setul de test este rezervat pentru evaluarea finală



from sklearn.model_selection import GridSearchCVkf = 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 RandomizedSearchCVkf = 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
Învățare supravegheată cu scikit-learn