728x90
반응형
그리드 서치(Grid Search) : 좋은 성능을 내는 하이퍼 파라미터를 찾아내는 방법
아 그전에 하이퍼 파라미터를 먼저 알아야 하는데 그건
>> https://data-yun.tistory.com/7
나는 사전처럼 정확하게 정의할 수는 없다. 그래서 당연히 내가 말한거에 틀린 부분이 분명 있을것이다.
그래도 내가 이해한대로 쉽게 풀어서 적어보는 단계..
혹시 그런부분이 있다면 알려주세요.. 저도 수정하고 배우겠습니답
; 모델을 훈련시킬때 사용되는 모델 내 파라미터를 조정하는 방법
모델 내에서 n_estimator나 cv와 같은 파라미터의 값을 어떻게 조정해야 할지 모를 때 사용한다.
굳이 정해주지 않으면 default값으로 들어가기는 하지만 물론 안넣으면 오류가 나는 모델/함수 도 있다
어떤 값으로 지정을 해야 좋은 성능의 모델을 만들수 있을 것인가를 당연히 고민할 것이다.
머신러닝을 공부하는 사람들이라면..?
#그리드 서치 실행
from sklearn.model_selection import GridSearchCV
from lightgbm import LGBMRegressor
lgb = LGBMRegressor()
parameters = {'colsample_bytree': [0.87, 0.88, 0.89, 0.9],
'learning_rate': [0.05, 0.1, 0.11], # 줄일수록 높은성능?
'max_depth': [20], # feature가 많다면 크게 설정
'min_child_weight' : [4],
'n_estimators': [5000], # default 100. 1000이상하면 과적합우려
'subsample': [0.2],
'min_data_in_leaf': [10], # 과적합 줄이기
'min_samples_split':[4]
}
lgb_grid = GridSearchCV(lgb,
parameters,
scoring = 'r2',
cv = 8,
n_jobs = -1, # -1: 모든 프로세서를 사용
verbose=True)
lgb_grid.fit(X_train, y_train)
그리드서치 파라미터로 모델이름과 그 모델에 대한 파라미터를 넣어준다.
이때 해당 모델에 파라미터가 너무 많아서 그 이전에 모델에 대한 파라미터를 딕셔너리화 하여 따로 선언해준다.
scoring 에 따라서 최적화 되는 파라미터가 달라진다.
위 코드는 r square 스코어링을 기준으로 했을때 최적의 파라미터를 찾도록 설정하였다.
lgb_grid.best_params_
어떤 파라미터가 가장 최적이었는지 확인해보고 싶다면 위와 같은 코드를 써보자!
pred= lgb_grid.predict(X_test)
r2_score(y_test, pred)
r2 로 최적화 파라미터를 찾았으니 r2결과를 확인해보면
짠!
목표는 0.76 이었는데..
728x90
반응형
'Machine Learning' 카테고리의 다른 글
[ML] 앙상블 기법 정리 (0) | 2024.10.30 |
---|---|
DevOps란? (1) | 2024.02.24 |
[Machine Learning] SMOTE (0) | 2023.07.23 |
[Machine Learning] Hyper Parameter 하이퍼 파라미터 (0) | 2023.07.23 |
ML - day1 (0) | 2023.07.18 |