본문 바로가기

Machine Learning/분류(Classification)

Classification - RandomForestClassifier

반응형

https://steadiness-193.tistory.com/257

 

Machine Learning - valid와 test를 train으로 전처리

https://steadiness-193.tistory.com/256 Machine Learning - train_test_split https://steadiness-193.tistory.com/253 Machine Learning - 랜덤으로 train과 test로 나누기 데이터 불러오기 seaborn의 iris 데..

steadiness-193.tistory.com

 

위 포스팅에서 만든 데이터셋을 이용한다.

 

 

 

[RandomForestClassifier]

여러 개의 모델을 합치는 앙상블의 대표적 모델

서로 다른 변수 셋으로 여러 트리를 생성



[파라미터]

n_estimatiors : 트리의 갯수, 높을 수록 정확도가 높아지나 시간이 오래 걸린다.

n_jobs : 병렬처리 여부, -1을 입력하면 컴퓨터에 존재하는 모든 코어를 사용한다.

random_state : 결과를 고정시킴, Seed Number와 같은 개념

max_depth : 생성할 DecisionTree의 깊이 (int)
가지치기를 적용할 수 있는 파라미터 (일반화 성능 고려)

max_features : RF가 사용하는 feature의 수 (float)

min_samples_split : 구간의 데이터 수가 N개 미만이면 더이상 분기하지 않음 (int)
과적합 방지

max_leaf_nodes : 리프 노드에서 최대로 가지고 있을 수 있는 데이터의 수 (int)

 

 

 

아무 파라미터 없이 수행한 결과 약 79%의 정확도를 보인다.

 

 

 

 

매개변수(파라미터) 조정

 

 

5개의 파라미터를 입력하니 정확도가 약 1%p 상승했다.

 

 

 

 

 

 

Feature_importance (변수 중요도)

 

트리 기반 모델(DecisionTree, RandomForest, XGboost 등)은

트리를 분기하는 과정에서 어떤 변수가 중요한지에 대한 변수 중요도를 나타낸다.

 

 

 

중요도가 높은 순으로 정렬

 

 

 

값이 높은 변수가 좋다라는 것은 아니고

 

모델이 데이터를 분류할 때 정보량이 많았다라는 것을 의미한다.

 

 

시각화

 

 

 

중요도가 0 이상인 컬럼만 걸러내 그린 것이다.

반응형