더 정교한 기계 학습 알고리즘을 배워보자..
잎이 많은 깊은 트리
오늘날의 가장 정교한 모델링 기법도 Overfitting 과 Underfitting의 문제에 직면한다고 함..
하지만 성능을 더 발전시킬 수 있는, Random Forests 라는 것이 있다
Random Forests는 많은 트리를 사용하며, 각 구성 요소 트리의 예측을 평균하여 예측함
일반적으로 단일 Decision Tree 보다 예측 정확도가 훨씬 뛰어나며 기본 매개 변수로도 잘 작동함
모델링을 계속하면 더 나은 성능으로 더 많은 모델을 학습할 수 있지만 이러한 모델 중 상당수는 올바른 매개 변수를 얻는 데에 민감하다.
data split을 끝내면 다음과 같은 변수가 있을 것임
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))
Decision Tree 오류인 250,000에 비해 크게 개선된 수치를 보임
단일 Decision Tree의 최대 깊이를 변경한 것처럼 Random Forest의 성능을 크게 변경할 수 있는 매개변수 가 있음
하지만 Random Forest 모델의 가장 큰 특징 중 하나는 이러한 튜닝 없이도 일반적으로 잘 작동함