관심 있는 매개변수들을 대상으로 가능한 모든 조합을 시도.
일반화 성능을 최대로 높여주는 값을 찾는 것.
GirdSearchCV는 교차검증을 사용.
- 분류 : 기본값 StratifiedKFold
- 회귀 : 기본값 KFold
교차 검증은 어떤 데이터셋에 대해 주어진 알고리즘을 평가하는 방법.
하지만 그리드 서치와 같은 매개변수 탐색 방법과 합쳐서 많이 사용.
많은 사람이 교차검증이라는 용어를 교차검증을 사용한 그리드 서치라는 의미로 주로 사용.
GridSearchCV는 메타추정기
(meta-estimator, 다른 추정기를 사용해서 만든 추정기)이다.
- fit : 최적의 매개변수를 찾아준다.
교차 검증 성능이 가장 좋은 매개변수로 전체 훈련 데이터셋에 대해 새로운 모델을 자동으로 만든다.
- predict : 학습할 모델에 접근
- score : 찾은 최적 매개변수로 일반화 성능을 평가
그리드서치 사용방법
1. 매개변수가 과대적합되는 것을 피하려면 train, test로 먼저 나눠준다.
2. 그리드서치(내재된 교차검증)의 fit, predict, score 메서드를 호출
import pandas as pd
# 데이터셋 가져오기
data = pd.read_csv('경로/파일이름.csv', index_col='인덱스로 사용할 컬럼이름')
# 데이터셋, X와 y로 나눠주기
y = pd.DataFrame(data['타겟 컬럼이름'])
X = data.drop('타겟 컬럼이름', axis=1)
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
grid_search = GridSearchCV(SVC(), param_grid, cv=5, return_train_score=True)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
gird_search.fit(X_train, y_train)
# 찾은 최적 매개변수로 일반화성능을 평가
grid_search.score(X_test, y_test)
# 최적 매개변수
print(grid_search.best_params_)
# 최고 교차 검증 점수
print(gird_search.best_score_)
# 최고 성능 모델
print(gird_search.best_estimator_)
'Programming > Machine Learning' 카테고리의 다른 글
파이프라인 (0) | 2020.02.16 |
---|---|
이진 분류 (0) | 2020.02.16 |
k-겹 교차검증 (0) | 2020.02.16 |
특성 자동 선택 (0) | 2020.02.15 |
스케일 조정 (0) | 2020.02.15 |