[5] Random Forests

김상완·2024년 4월 1일
0

더 정교한 기계 학습 알고리즘을 배워보자..

Introduction

잎이 많은 깊은 트리

  • 각 예측이 해당 잎에 있는 몇 개의 집의 과거 데이터에서 나온 것이기 때문에 과적합(Overfitting)
    잎이 적은 얕은 트리
  • 원시 데이터에서 많은 구분을 포착하지 못하기 때문에 성능이 떨어짐

오늘날의 가장 정교한 모델링 기법도 Overfitting 과 Underfitting의 문제에 직면한다고 함..

하지만 성능을 더 발전시킬 수 있는, Random Forests 라는 것이 있다

Random Forests는 많은 트리를 사용하며, 각 구성 요소 트리의 예측을 평균하여 예측함
일반적으로 단일 Decision Tree 보다 예측 정확도가 훨씬 뛰어나며 기본 매개 변수로도 잘 작동함
모델링을 계속하면 더 나은 성능으로 더 많은 모델을 학습할 수 있지만 이러한 모델 중 상당수는 올바른 매개 변수를 얻는 데에 민감하다.

Example

data split을 끝내면 다음과 같은 변수가 있을 것임

  • train_X
  • val_X
  • train_y
  • val_y

Decision Tree 구축할 때와 유사하게 Random Forests 모델을 구축한다.
RandomForestRegressor 클래스를 사용

from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error

forest_model = RandomForestRegressor(random_state=1)
forest_model.fit(train_X, train_y)
melb_preds = forest_model.predict(val_X)
print(mean_absolute_error(val_y, melb_preds))

Conclusion

Decision Tree 오류인 250,000에 비해 크게 개선된 수치를 보임
단일 Decision Tree의 최대 깊이를 변경한 것처럼 Random Forest의 성능을 크게 변경할 수 있는 매개변수 가 있음
하지만 Random Forest 모델의 가장 큰 특징 중 하나는 이러한 튜닝 없이도 일반적으로 잘 작동함

profile
Learning like Machine

0개의 댓글