프로젝트/코드프레소 체험단

파이썬으로 구현하는 머신러닝 : 트리모델 - Random Forest

KimCookieYa 2022. 2. 9. 16:27

Random Forest 모델

 - Bagging 기법을 사용하는 대표적인 앙상블 학습 모델

 - Base 모델로 Decision Tree를 사용

 - 일반적인 특징은 Decision Tree와 유사함

 - Decision Tree의 장점인 높은 모델 해석력은 해당하지 않음

 

Random Forest 모델의 장점

 - Decision Tree의 장점을 대부분 포함(모델 해석력 제외)

 - Decision Tree에 비해 Overfitting의 위험성이 상대적으로 적음

 - 단일 ML 모델보다 일반적으로 예측 성능이 높음

 - 대부분의 Hyperparameter는 Decision Tree와 유사함

 

Random Forest 모델의 단점

 - 느린 학습 속도

 - Hyperparameter 튜닝의 어려움(너무 많은 조합이 가능)

 

 * n_estimators : 생성되는 Decision Tree의 개수

 - Default 값은 100 : 100개의 Decision Tree 학습 및 예측 Voting

 - 많이 생성한다고 무한대로 예측 성능이 좋아지지는 않음

 

 * Random Forest 모델의 구현

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

cancer = load_breast_cancer()
x_train, x_test, y_train, y_test = train_test_split(cancer.data, cancer.target, test_size=0.3, random_state=12)

# RandomForestClassifier 임포트
from sklearn.ensemble import RandomForestClassifier

# RandomForestClassifier 객체 생성
rf = RandomForestClassifier(random_state=12)

# RandomForestClassifier 객체 학습 및 검증
rf.fit(x_train, y_train)
pred = rf.predict(x_test)

print('Accuracy: {0:.3f}'.format(accuracy_score(y_test, pred)))