scikit-learn による教師あり学習
George Boorman
Core Curriculum Manager
リッジ/ラッソ回帰: alphaを選択
KNN: n_neighborsを選択
ハイパーパラメータ: モデルを適合させる前に指定するパラメータ
alpha と n_neighborsさまざまなハイパーパラメータ値を試す
それぞれ別々に合わせる
パフォーマンスを確認する
パフォーマンスの最も高い値を選択
ハイパーパラメータ調整と呼ばれる
交差検証を使用してテストセットの過学習を避けることが重要
データを分割し、学習セットで交差検証を実行することもできる
最終評価のためにテストセットを保留する



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
scikit-learn による教師あり学習