앙상블 방법
-배깅: 같은 알고리즘으로 여러 모델을 만들어 분류함(랜덤포레스트)
-부스팅: 학습과 예측을 하면서 가중치 반영 (xgboost)
여러개의 의사결정 트리로 구성
앙상블 방법 중 배깅(bagging) 방식
부트스트랩 샘플링 (데이터셋 중복 허용)
최종적으로는 다수결 투표로 의사결정을 함
과대적합 가능성 낮음
장점: 과적합, 이상치, 결측치에 강하고, 예측력이 좋습니다. 정규화 과정이 없어도 되고, 비선형 데이터에도 좋은 성능을 보여줍니다.
단점: 많은 의사결정나무를 만들어야 하므로 학습 시간이 길고 연산량이 많습니다. 모형의 해석이 어렵고, 의사결정나무 외의 다른 예측 모델을 적용할 수 없습니다.
# 랜덤포레스트
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(random_state=0)
model.fit(X_train, y_train)
pred = model.predict(X_test)
accuracy_score(y_test, pred)
n_estimators (기본값 100) : 트리의 수
criterion (기본값 gini) : 불순도 지표
max_depth (기본값 None) : 최대 한도 깊이
min_samples_split (기본값 2) : 자식 노드를 갖기 위한 최소한의 데이터 수
min_samples_leaf (기본값 1) : 리프 노드가 되기 위한 최소 샘플 수
# 랜덤포레스트 하이퍼파라미터
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=500, max_depth=5, random_state=0)
model.fit(X_train, y_train)
pred = model.predict(X_test)
accuracy_score(y_test, pred)