Machine Learning

Grid search - 모델 성능을 최고로 만드는 파라미터 값을 찾아준다

yugyeong 2022. 12. 2. 15:47

 

Grid search 

 

 

모델에게 가장 적합한 하이퍼 파라미터 값을 찾아준다 

Grid search 은 모델의 하이퍼 파라미터에 넣을 수 있는 값들을 순차적으로 입력한뒤에 가장 높은 성능을 보이는 하이퍼 파라미터들을 찾는 탐색 방법이다. 

 

 

 

먼저 딕셔너리로 파라미터의 조합을 생성해준다.

아래의 예시에서는 인공지능 모델의 들어갈 파라미터값 'kernel' , 'C' , 'gamma' 을 딕셔너리 형식으로 작성한 값이다.

 

 

 

grid search 를 사용하기 위해서 아래의 라이브러리를 임포트 해준다.

from sklearn.model_selection import GridSearchCV

 

 

GridSeachCV() 를 변수 grid 에 저장을 해준 후 괄호 안에는 사용할 인공지능과 파라미터 값을 저장한 변수를 넣어준다.

여기서 파라미터 refit =True인 경우 최적의 하이퍼 파라미터값을 찾은 후 입력된 개체를 해당 하이퍼 파라미터로 재학습하라는 의미이다.

verbose는 현재 학습되고 있는 상태를 우리한테 보여주라는 파라미터 값이다. 

 

grid 를 학습 시키기위해 fit 함수를 사용하여 괄호 안에는 X_train 과 y_train 값을 넣어준다

 

from sklearn.model_selection import GridSearchCV
grid = GridSearchCV( SVC(), param_grid , refit= True, verbose= 4 )
grid.fit(X_train, y_train)

 

 

 

grid.best_estimator_ 은 가장 좋은 인공지능을 가져오라는 의미이다.

가져온 가장 좋은 인공지능을 변수 classifier 에 저장을 해주었다.

 

classifier = grid.best_estimator_

classifier

 

 

여기서 파라미터 best_params_ , best_score_ 는 최적의 파라미터와 최고 점수를 내라는 함수이다.

 

grid.best_params_

grid.best_score_

 

 

 

최고의 성능을 가져온 인공지능 변수 classifier 로 X_test 값을 예측하였다.

그리고 그 예측한 값을 변수 y_pred 에 저장하여서 정확도를 알아봤을 때의 결과값이다.

 

y_pred = classifier.predict(X_test)

confusion_matrix(y_test,y_pred)

accuracy_score(y_test, y_pred)