인프런 커뮤니티 질문&답변
GridSerachCV에서의 하이퍼파라미터 튜닝
작성
·
375
0
안녕하세요 선생님! 하이퍼파라미터 튜닝에 대해 질문이 있어 글 올렸습니다!
GridSearchCV의 방법을 사용하는데 있어 모든 하이퍼파라미터의 조합을 다 수행하면서 찾으면 되기 때문에 최적화 시간이 충분하다면 GridSearchCV가 좋은 방법이라고 생각되는데요.
여기서 조합을 짜는데 있어 따로 노하우가 있는지가 궁금합니다.
GradientBoostingClassifier(max_depth=6, min_samples_leaf=10,
min_samples_split=5, n_iter_no_change=5,
random_state=43)예를 들어 위와 같은 하이퍼파라미터들이 있을때 max_depth, min_samples_leaf, min_samples_split 등 여러 파라미터의 범위가 따로 안주어져 있으므로 각각 1~무한 까지 설정이 가능하다고 생각됩니다.
물론 현실적으로 다 진행하는 것은 불가능 하다고 생각하지만 GridSearchCV 를 통해 하이퍼 파라미터를 튜닝하는데 있어 어느정도 범위를 빠르게 정하는 방법이나 일반적으로 행하는 절차들이 있을 것 같아 질문드립니다!!
답변 1
0
안녕하십니까,
음, 저는 일반적으로 행하는 절차를 규정하지는 못할것 같습니다.
다만 xgboost나 lightgbm 같은 경우 중요한 파라미터 위주로만 Grid Search를 수행하는 것을 선호합니다. 강의에서 소개 드렸던 하이퍼 파라미터를 위주로 선정하면 lightgbm의 경우 num_leaves의 크기를 키우거나, max_depth의 크기를 줄이거나, colsampe_bytree이나 subsample을 0.5에서 0.8 정도까지 0.1 단계로 높이는 작업을 수행하곤 합니다.
하지만 5개 미만의 하이퍼 파라미터만 설정해서 xgboost같은 경우 학습 시간이 꽤 오래 걸립니다.
xgboost나 lightgbm을 사용할 경우에는 Grid Search로는 최적화에 한계가 있을 것 같습니다. 그렇다고 크게 다른 방법에 비해서 최적화 성능이 떨어지지는 않습니다. 하지만 Grid Search 보다는 Randomized Search(강의에서는 소개 시켜드리지 않았습니다만), 그 보다는 베이지안 최적화가 더 나은 최적화를 보이는 경향이 있습니다.
그렇다고 grid search, randomized search, 베이지안 최적화가 큰 성능 차이를 보이는 것 같지는 않습니다. 워낙 하이퍼 파라미터 튜닝을 통해 개선할 수 있는 성능 마진이 작기 때문입니다.
정리하자면 grid search cv를 적용할 경우 주요 하이퍼 파라미터를 위주로 작업하되, 너무 세세하게 하이퍼 파라미터를 제어하여 튜닝할 필요는 없다고 생각합니다. 하이퍼 파라미터 튜닝의 성능 개선 마진이 기본적으로 크기 않기 때문입니다.
감사합니다.





