https://metime.tistory.com/320
랜덤포레스트 마무리 게시글이다.
from sklearn.ensemble import RandomForesetClassifier
랜덤포레스트 초매개변수 튜닝은 궁극적으로 tree의 depth를 조절하는 것이다.
** 초매개변수(hyper parameter)
- n_estimators: 트리의 수 조절(성능 향상)
- n_jobs: 병렬 처리(cpu core 수, 성능 향상)
- max_depth(default =2): 과대 적합 해결
- min_samples_split: 과대 적합 해결
- max_features: 과대 적합 해결
여러가지 트리에 의해서 다른 트리가 구성되도록 하는 것이 RF의 사상이기 때문에 대체적으로 서로 다른 트리가 생성된다. 시작과 동시에 각자의 트리 학습을 이어가는 학습방식이기 때문에, 각각의 트리가 동시에 시작하는 것이 병렬 처리이다.
위 iris data 로 테스트 하여 변수 중요도를 보니, 뒤의 두 개가 수치가 비슷하다.
변수 중요도를 볼 때에는 전체 데이터셋을 가지고 전체를 반영했을 때 가장 중요한 변수가 어떤 변수인지 확인하는 과정이 중요하다.
train data / test data로 나누는 것은 모델평가를 제대로 하기 위해서이며,
모델링 전에 어떤 변수가 유의미한지 확인하기 위해서는 전체 데이터를 학습시키고 feature importance를 보는 것이 중요하다.
즉, 위의 과정은 불순도(gini) 기준 생성 변수 중요도이다.
'배우기 > 복습노트[Python과 분석]' 카테고리의 다른 글
[복습] Python 시각화(1) (0) | 2024.02.07 |
---|---|
[복습] Python 시계열 데이터(2) (0) | 2024.02.04 |
[복습] Python 시계열 데이터(datetime, strptime, strftime, pd.to_datetime, timedelta, pd.DateOffset) (1) (0) | 2024.02.01 |
[복습] Python multi-index(2) (0) | 2024.02.01 |
[복습] Python 또 다른 형태의 교차표 생성(pd.crosstab, pivot, pivot_table) (0) | 2024.02.01 |