반응형
https://steadiness-193.tistory.com/230
위 포스팅에서 만들어낸 내용을 토대로
랜덤포레스트의 옵션들인, 하이퍼파라미터의 적절한 값을 찾아보자.
[Coarse Search]
Random Search를 베이스로 하며, 이론상으로 존재 가능한 모든 하이퍼파라미터 범위를 집어넣는다.
가장 좋은 하이퍼파라미터를 찾는 것보단, 좋지 않은 하이퍼파라미터를 소거하는 전략
[RandomForestRegressor]
n_estimatiors : 트리의 갯수, 높을 수록 정확도가 높아지나 시간이 오래 걸린다.
n_jobs : 병렬처리 여부, -1을 입력하면 컴퓨터에 존재하는 모든 코어를 사용한다.
random_state : 결과를 고정시킴, Seed Number와 같은 개념
max_depth : 트리의 깊이, 지정한 수만큼 가지를 깊게 뻗음
max_features : Feature Sampling,
0.0 - 0.1사이의 값을 넣을 수 있으며 트리 생성 시 전체 feature에서 지정한 비율 만큼만 feature를 사용함
하이퍼파라미터 튜닝은 max_dapth와 max_features 두 가지를 중점으로 진행한다.
참고용 포스팅
https://steadiness-193.tistory.com/225
Coarse Search
이전 포스팅에서 했던 Evaluation을 하는 것인데
max_depth와 max_features만 랜덤하게 넣어줘서 평가하는 것이다.
n_estimators는 높을 수록 좋으나, 실행 속도 고려 차원에서 적당한 값을 준다.
랜덤서치는 보통 100번 반복한다.
결과가 낮은 순으로 정렬을 했다.
살펴보니 max_depth는 60 이상이 많이 보이고
max_features는 0.7 이상이 많아 보인다.
[Fine Search]
Random Search 베이스지만,
Coarse Search에서 찾아낸 좋은 범위만을 집어넣어 다시 한번 진행.
Fine Search
위 데이터프레임에서 0, 1번째 컬럼의 0번째 값이 가장 좋은 하이퍼파라미터인 것을 알 수 있다.
모델에 하이퍼파라미터 집어넣기
하이퍼파라미터 튜닝이 끝나면 n_estimators는 최대한 높은 값을 준다.
반응형
'Kaggle' 카테고리의 다른 글
Kaggle - train, test를 한꺼번에 전처리하기 (0) | 2020.08.25 |
---|---|
Kaggle - Bike Sharing Demand : Fit, Predict (Random Forest) (0) | 2020.08.20 |
Kaggle - Bike Sharing Demand : Evaluation (Random Forest, Cross-validation) (0) | 2020.08.19 |
Kaggle - Bike Sharing Demand : EDA & Feature Engineering (2) (0) | 2020.08.19 |
Kaggle - Bike Sharing Demand : EDA & Feature Engineering (0) | 2020.08.18 |