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으로 배우는 지도 학습