더북(TheBook)

이 코드에서 sklearn.model_selection 모듈에 있는 GridSearchCV 클래스의 객체를 만들고 서포트 벡터 머신(SVM)을 위한 파이프라인을 훈련하고 튜닝합니다. GridSearchCV 클래스의 param_grid에 튜닝하려는 매개변수를 딕셔너리의 리스트로 지정합니다. 선형 SVM의 경우 규제 매개변수 C만 튜닝합니다. RBF 커널 SVM에서는 svc__Csvc__gamma 매개변수를 튜닝합니다. svc__gamma 매개변수는 커널 SVM에만 해당됩니다.

훈련 데이터셋을 사용하여 그리드 서치를 수행한 후 최상의 모델 점수는 best_score_ 속성에서 얻고 이 모델의 매개변수는 best_params_ 속성에서 확인할 수 있습니다. 이 경우에는 svc__C = 100.0인 RBF 커널 SVM 모델이 가장 좋은 k-겹 교차 검증 정확도 98.5%를 달성했습니다.

마지막으로 독립적인 테스트 데이터셋을 사용하여 최고 모델의 성능을 추정합니다. 이 모델은 GridSearchCV 객체의 best_estimator_ 속성에서 얻을 수 있습니다.

>>> clf = gs.best_estimator_
>>> clf.fit(X_train, y_train)
>>> print('테스트 정확도: %.3f' % clf.score(X_test, y_test))
테스트 정확도: 0.974

그리드 서치를 수행한 후 clf.fit(X_train, y_train)을 실행하여 최상의 매개변수 조합과 훈련 데이터셋에서 모델(gs.best_estimator_)을 수동으로 다시 훈련할 필요가 없습니다. GridSearchCV 클래스의 refit 매개변수를 True로 지정하면(True가 이 매개변수의 기본값입니다) 전체 훈련 데이터셋에서 자동으로 gs.best_estimator_를 다시 훈련합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.