본문 바로가기

Data Science/Pandas

GridSearch를 이용한 model training

728x90

이번 포스팅에는 GridSearch 모듈을 사용하여 3가지의 모델을 학습해 보겠습니다. 


먼저, 아래와 같은 데이터를 활용하여 간단한 데이터 전처리 후, 모델에 SVR, RandomforestRegressor, XGBoostRegressor 모델에 GridSearchCV를 적용해 보겠습니다.

 

1. One-Hot Encoding

범주형 변수들을 더미 변수를 이용하여 적절하게 변환하였습니다.

 



2. GridSearchCV 적용

파라미터 후보들을 리스트로 넣어서 아래와 같은 결과를 얻었습니다. grid_svm의 속성 중, cv_results_를 출력해보니 아래와 같은 딕셔너리 형 데이터가 나오는 것을 확인할 수 있습니다. 이 데이터를 이용하여 점수가 제일 좋은 파라미터를 확인해 보도록 하겠습니다.

 


 

cv_results_ 속성들 중 params와 mean_test_score을 이용하여 데이터프레임으로 만든 후, 제일 좋은 점수와 파라미터가 가장 위에 오도록 정렬해 보았습니다. 

점수가 제일 좋은 파라미터는 GridSearchCV의 best_params_를 이용해서도 구할 수 있습니다.

 



3. 모델 학습

위에서 구한 가장 좋은 파라미터로 SVR을 학습한 후, 결정계수와  RMSE 값을 출력했습니다.

RandomForestRegressor와 XGBoostRegressor도 동일한 과정을 거친 후 결정계수와 RMSE 값을 출력했습니다.

 


 

위 결과, RMSE 값이 작고 결정계수가 가장 큰 XGBoost 모델이 가장 적합한 알고리즘으로 선정이 될 것 같네요!


한 가지 팁이 있다면 GridSearchCV에서 best_params_를 찾아서 다시 모델을 fit 하는 과정을 거쳤는데 아래와 같이 GridSearchCV의 best_estimator_ 속성을 이용한다면 모델을 재학습시킬 필요 없습니다.

 


 

위와 같이 best_estimator_의 score, predict와 SVR을 재학습하여 구한 score, predict가 같게 나오는 것을 확인할 수 있습니다.

 

 

출처

[데싸라면, 빨간색 물고기, 자투리코드] 파이썬 한권으로 끝내기: 데이터분석전문가(ADP) + 빅데이터분석기사 실기대비, 시대고시기획(2022)

728x90
반응형

'Data Science > Pandas' 카테고리의 다른 글

Pandas로 datetime 다루기  (0) 2023.09.04
데이터 분석 및 학습 (전체 과정)  (0) 2023.09.03
결측치 처리 - KNNImputer  (0) 2023.09.01
Confusion Matrix - 혼동행렬  (0) 2023.09.01
PCA - 차원 축소  (0) 2023.08.31