728x90
랜덤 포레스트
- 대표적인 결정 트리 기반의 앙상블 학습 방법
- 부트스트랩 샘플을 사용하고 랜덤하게 일부 특성을 선택하여 트리를 만드는 것이 특징
- 데이터 샘플링을 할 때 복원추출
- 결정나무(Decision Tree)를 여러개 만들어서 그 결과들을 종합적으로 고려하여 결론을 도출하는 방법
- 기본 100개의 트리 사용
- n_job 매개변수 : -1로 지정하면 모든 CPU 코어를 사용
from sklearn.model_selection import cross_validate
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_jobs=-1, random_state=42)
scores = cross_validate(rf, train_input, train_target, return_train_score=True, n_jobs=-1)
print(np.mean(scores['train_score']), np.mean(scores['test_score']))
# 0.997 0.890
# 과대 적합
- 특성 중요도 계산
- 노드들의 지니 불순도를 통해서 계산
- 노드가 중요할수록 불순도가 감소
rf.fit(train_input, train_target)
print(rf.feature_importances_)
# [0.23167441 0.50039841 0.26792718]
- 자체적으로 모델 평가 점수
- 부트스트랩 샘플에 포함되지 않고 남는 샘플 : OOB(out of bag) 샘플
- 이 남는 샘플을 사용하여 훈련한 결정 트리 평가 (검증 세트 역할)
- 모델에 oob_score 매개변수 True
rf = RandomForestClassifier(oob_score=True, n_jobs=-1, random_state=42)
rf.fit(train_input, train_target)
print(rf.oob_score_)
- 랜덤 포레스트 장점
- 분류(classification), 회귀(Regression)문제에 모두 사용 가능함.
- 결측치(Missing value)를 다루기 쉽다.
- 대용량데이터 처리가 쉽다.
- 과적합(Overfitting)문제를 해결해준다.
- 특성중요도(Feature importance)를 구할 수 있다.
앙상블 (Ensemble)
- 강력한 하나의 모델을 사용하는 대신 보다 약한 여러개의 모델을 조합하여 더 정확한 예측을 해주는 방법
728x90
반응형
'TIL - 외 > 빅데이터' 카테고리의 다른 글
[빅데이터] 분류 모형 결과 평가 1. 혼동 행렬 (0) | 2023.07.07 |
---|---|
코호트 분석1 (0) | 2023.06.19 |
[머신러닝] 트리 알고리즘 (DecisionTreeClassifier) (0) | 2023.05.24 |
엘로 평점 시스템 (Elo Rating System) (0) | 2023.05.18 |
[머신러닝] 로지스틱 회귀 (0) | 2023.05.07 |
댓글