-
AI 모델 만들기 시리즈 9화 – 비선형 패턴을 잡아라: Decision Tree와 Random Forest 회귀 실습기술과 산업/AI 2025. 5. 13. 19:39728x90
선형 회귀는 데이터가 직선 형태로 분포할 때만 좋은 성능을 냅니다.
하지만 현실의 데이터는 대부분 복잡하고 비선형적인 패턴을 가집니다.
이런 문제를 해결하기 위해 의사결정트리와 앙상블 기반의 랜덤포레스트가 등장했습니다.이번 실습에서는 Scikit-learn을 활용해 이 두 가지 모델을 직접 구현하고 성능을 비교합니다.
개념 설명: Decision Tree Regression
Decision Tree는 데이터를 조건에 따라 여러 그룹으로 나누고,
각 그룹의 평균값을 예측값으로 사용하는 방식입니다.장점:
- 데이터의 비선형성과 다중 변수 상호작용을 잘 처리
- 해석이 직관적 (나무 형태로 시각화 가능)
단점:
- 단일 트리는 데이터의 작은 변화에도 민감 (과적합 위험)
개념 설명: Random Forest Regression
Random Forest는 여러 개의 Decision Tree를 만들고
각 트리의 예측값을 평균내 최종 예측값을 결정하는 앙상블 모델입니다.장점:
- 과적합 위험이 낮음 (여러 모델의 평균 사용)
- 성능이 뛰어나고 범용성이 높음
- 실무에서 가장 많이 쓰이는 회귀 알고리즘 중 하나
단점:
- 모델 해석이 어렵고 학습 시간이 상대적으로 길어질 수 있음
코드 실습 – Scikit-learn 구현
1. 데이터 불러오기 및 분할
from sklearn.datasets import fetch_california_housing from sklearn.model_selection import train_test_split data = fetch_california_housing() X = data.data y = data.target X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42 )
2. Decision Tree Regressor 학습
from sklearn.tree import DecisionTreeRegressor from sklearn.metrics import mean_squared_error, r2_score tree_model = DecisionTreeRegressor(random_state=42) tree_model.fit(X_train, y_train) y_pred_tree = tree_model.predict(X_test) print("Decision Tree MSE:", mean_squared_error(y_test, y_pred_tree)) print("Decision Tree R²:", r2_score(y_test, y_pred_tree))
3. Random Forest Regressor 학습
from sklearn.ensemble import RandomForestRegressor forest_model = RandomForestRegressor(n_estimators=100, random_state=42) forest_model.fit(X_train, y_train) y_pred_forest = forest_model.predict(X_test) print("Random Forest MSE:", mean_squared_error(y_test, y_pred_forest)) print("Random Forest R²:", r2_score(y_test, y_pred_forest))
결과 해석
Random Forest는 단일 Decision Tree보다 일반적으로 더 높은 성능을 보입니다.
특히 데이터에 노이즈가 많을 때 Random Forest가 훨씬 안정적인 예측을 합니다.모델 MSE R²
Decision Tree (출력값 확인) (출력값 확인) Random Forest (출력값 확인) (출력값 확인) 실제로 돌려보면 Random Forest가 R² 점수가 더 높게 나오는 것을 확인할 수 있습니다.
정리: 비선형 회귀 모델의 강력함
모델 특징 실무 활용도
Decision Tree 데이터 분할로 예측, 직관적 과적합 가능성 Random Forest 여러 트리 평균, 안정적 매우 널리 사용 데이터가 복잡하고 상관관계가 꼬여 있다면 Random Forest를 기본 모델로 고려하는 것이 좋습니다.
728x90'기술과 산업 > AI' 카테고리의 다른 글
AI/ML 기반 데이터 분석 시리즈 9화 - 앙상블 학습(Ensemble Learning)과 실전 적용 전략 (1) 2025.05.14 Zonos TTS 활용 시리즈 1화 - Zonos TTS란 무엇인가 차세대 오픈소스 음성합성의 등장 (2) 2025.05.13 Whisper 시리즈 15화 – Whisper 오픈소스 커뮤니티 동향, Fork와 확장 프로젝트 분석 (0) 2025.05.13 Ollama 시리즈 3화 - Ollama CLI 핵심 명령어 (1) 2025.05.13 Whisper로 만드는 유튜브 자막 자동 생성 SaaS 프로토타입 (0) 2025.05.13