Övervakad inlärning med scikit-learn
George Boorman
Core Curriculum Manager
Ridge/lasso-regression: Välj alpha
KNN: Välj n_neighbors
Hyperparametrar: Parametrar vi anger innan modellen tränas
alpha och n_neighborsTesta många olika hyperparametervärden
Träna modellen separat för vart och ett
Utvärdera hur väl de presterar
Välj de bäst presterande värdena
Detta kallas hyperparameterjustering
Korsvalidering är nödvändigt för att undvika överanpassning till testmängden
Vi kan dela upp data och utföra korsvalidering på träningsdatan
Testmängden sparas för slutlig utvärdering



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
Övervakad inlärning med scikit-learn