1. RandomForestRegressor
(랜덤포레스트 회귀)
- 원리:
- 여러 개의 결정트리(Decision Tree를 만들어 각 트리의 예측값 평균을 최종 예측값으로 사용(앙상블)
- 특징:
- 과적합 방지에 강함 (각 트리가 무작위로 생성됨)
- 변수 간 비선형 관계/상호작용 잘 포착
- 변수 중요도 확인 가능(해석성 일부 있음)
- 장점:
- 파라미터 튜닝이 쉽고, 성능이 기본적으로 안정적
- 결측치, 이상치에도 비교적 강함
- 데이터 전처리 부담이 적음
- 단점:
- 너무 복잡한 데이터에서는 더 강력한 GBM 계열에 밀릴 수 있음
- 예측 경계가 부드럽지 않고 계단형
- 언제 사용?
- 비선형 관계가 있을 때
- 해석성과 성능을 모두 적당히 원할 때
- 빠른 실험/기본 모델로 쓰기 좋음
2. GradientBoostingRegressor (GBM, XGBoost, LightGBM 등 포함)
(그래디언트 부스팅 회귀)
-
원리:
-
특징:
- 예측력이 매우 강력
- 파라미터가 많아 튜닝에 따라 성능 차이 큼
- 최근에는 XGBoost, LightGBM, CatBoost 등 고성능 라이브러리로 발전
-
장점:
- 실무/대회에서 표준, 예측 성능 최고 수준
- 결측치, 범주형 변수 등 다양한 데이터 지원(CatBoost는 원본 범주형 지원)
-
단점:
- 파라미터(트리 개수, 깊이, 학습률 등) 튜닝이 필요
- 학습 속도가 RandomForest보다 느릴 수 있음
- 해석성이 약간 떨어짐
-
언제 사용?
- 최고의 예측 성능이 필요할 때
- 변수 상호작용, 비선형성, 복잡한 데이터
- Kaggle/실무에서 대부분의 회귀/분류 대회에서 1등급
3. 코드 예시 (scikit-learn)
python
복사편집
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
# 랜덤포레스트 회귀
rf = RandomForestRegressor(n_estimators=100)
rf.fit(X_train, y_train)
y_pred = rf.predict(X_test)
# 그래디언트 부스팅 회귀
gbm = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1)
gbm.fit(X_train, y_train)
y_pred = gbm.predict(X_test)
XGBoost, LightGBM, CatBoost 등도 사용법은 거의 비슷