Overfitting과 Underfitting을 해결하기 위한 수많은 아이디어가 있습니다.
이번 장에서는 Decision Tree를 활용한 모델의 성능을 높여주는 Random Forest에 대하여 살펴보겠습니다.
Single Decision Tree model보다 성능이 더 좋습니다.
default parameters를 활용해도 잘 동작합니다.
DecisionTreeRegressor
대신 Random Forest
를 활용합니다.
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_predis = forest_model.predict(val_X)
print(mean_absolute_error(val_y, melb_preds))
Single Decision Tree의 경우 가장 성능이 좋은 leaf nodes 수를 찾아서 정해줬습니다.
하지만 Random forest의 경우 parameter를 정해줄 수 있긴하지만, 굳이 정하지 않고 그대로 사용하여도 일반적으로 잘 동작합니다.
from sklearn.ensemble import RandomForestRegressor
rf_model = RandomForestRegressor(random_state=1)
rf_model.fit(train_X, train_y)
rf_val_pred = rf_model.predict(val_X)
rf_val_mae = mean_absolute_error(rf_val_pred, val_y)