728x90
반응형
1. Decision Tree (결정 트리)
- Decision Tree는 데이터를 기반으로 의사 결정 규칙을 계층적으로 학습하여 예측하는 기초적인 지도 학습 알고리즘
- 데이터를 특정 특성(Feature)으로 나누는 과정(분할)을 반복하여 트리 구조를 형성
- 트리의 리프 노드는 최종 예측값(분류나 회귀)을 나타냄
작동 원리
- 데이터를 여러 특성을 기준으로 분할하여 불순도(Entropy, Gini Impurity)를 최소화
- 각 분할 단계에서 최적의 분할 기준(특성 및 임계값)을 선택
- 분할을 반복하여 데이터를 점점 더 세부적으로 나눔
특징
- 장점:
- 직관적이고 이해하기 쉬운 모델
- 비선형 관계를 처리 가능
- 범주형 및 연속형 데이터 모두 사용 가능
- 단점:
- 과적합(Overfitting)의 가능성이 높음
- 데이터의 작은 변화에도 민감하여 불안정
사용 예제
- 데이터 세트: 의사 결정 나무를 사용해 이진 분류 또는 회귀 수행
python
코드 복사
from sklearn.tree import DecisionTreeClassifier
# 데이터 및 모델 생성
clf = DecisionTreeClassifier(criterion='gini', max_depth=3, random_state=42)
clf.fit(X_train, y_train)
# 예측
predictions = clf.predict(X_test)
2. Random Forest (랜덤 포레스트)
설명
- Random Forest는 여러 개의 결정 트리를 생성하고, 이를 앙상블(Ensemble)하여 최종 예측을 수행하는 알고리즘
- 개별 트리의 예측 결과를 합산(분류: 다수결, 회귀: 평균)하여 최종 결과를 출력
작동 원리
- Bootstrap Aggregation:
- 훈련 데이터를 무작위로 샘플링하여 각 트리에 서로 다른 훈련 세트를 제공
- Random Feature Selection:
- 각 트리에서 노드 분할 시 전체 특성 중 무작위로 선택된 일부 특성만 사용
- 예측 앙상블:
- 모든 트리의 예측 결과를 종합하여 최종 결과 결정
특징
- 장점:
- 과적합을 줄이는 데 효과적
- 데이터의 소음에 강하고 일반화 성능이 뛰어남
- 특성 중요도를 제공하여 해석 가능
- 단점:
- 계산 비용이 높음(많은 트리 생성)
- 직관적으로 이해하기 어려움
사용 예제
- 데이터 세트: 랜덤 포레스트를 사용해 분류 또는 회귀 수행
python
코드 복사
from sklearn.ensemble import RandomForestClassifier
# 데이터 및 모델 생성
clf = RandomForestClassifier(n_estimators=100, max_depth=3, random_state=42)
clf.fit(X_train, y_train)
# 예측
predictions = clf.predict(X_test)
728x90
반응형
'이론공부 > ML' 카테고리의 다른 글
Catboost 모델 (배깅, 부스팅 간단 요약) (0) | 2023.04.19 |
---|