본문 바로가기

배우기/복습노트[Python과 분석]

[복습] Python | 분석 | 랜덤포레스트(Random Forest, RF)(2) 마무리

728x90
반응형

https://metime.tistory.com/320

 

[복습] Python | 분석 | 랜덤포레스트(Random Forest, RF)(1) + 하루끝(20240126)

- 대표적인 트리기반 모델 - 앙상블 모형(동일한, 혹은 서로 다른 모형을 결합하여 최종 결론을 내는 방식) - 모델링 목적: 서로 다른 트리를 구성하는 것 1) 부트스트랩(bootstrap): 학습 데이터와 동

metime.tistory.com

 

랜덤포레스트 마무리 게시글이다.

 

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) 기준 생성 변수 중요도이다.

 

 

728x90
반응형