https://steadiness-193.tistory.com/230
Kaggle - Bike Sharing Demand : Evaluation (Random Forest, Cross-validation)
https://steadiness-193.tistory.com/228 Kaggle - Bike Sharing Demand : EDA & Feature Engineering 데이터 출처 https://www.kaggle.com/c/bike-sharing-demand/data 컬럼 설명 자료형 datetime 일시 연-월-일..
steadiness-193.tistory.com
위 포스팅에서 만들어낸 내용을 토대로
랜덤포레스트의 옵션들인, 하이퍼파라미터의 적절한 값을 찾아보자.
[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
Numpy - random : normal, uniform, randint, choice
정규분포로부터 무작위 표본 추출 - normal np.random.normal(평균, 표준편차, 크기) * 평균은 0, 표준편차는 1이 기본값 np.random.normal 난수 50개 생성 균등분포로부터 무작위 표본추출 - uniform np.random..
steadiness-193.tistory.com
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 |