의사결정나무(Decision Tree)란?
- 데이터의 특징에 따라서 분류(Classification) 또는 예측(Regression)을 수행할 수 있는 트리 기반의 모델
- 의사결정나무는 의사 결정 규칙을 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류하거나 예측하는 분석 방법
- 간단하게 표현하자면, 아래 그림처럼 스무고개 방식으로 정답을 구하는 방식
⭑ 회귀(Regression) 문제에서 사용되는 의사결정나무인 DecisionTreeRegressor의 경우
: 실제값과 모델의 예측값의 차이(오차)가 최소가 되도록 나무의 가지를 나눈다
의사결정나무 회귀 모델의 특징과 작동 방식
- 의사결정나무는 독립 변수의 값을 기준으로 데이터를 분할한다
👉 이때 각 분할은 최대한 순수한 상태로 만들기 위해 정보 이득이 최대가 되도록 선택됨 - 분할을 더 이상 수행할 수 없는 상태를 리프 노드(Leaf Node)라고 함
👉 리프 노드는 예측값을 가지며, 회귀 문제에서는 평균값을 사용함 - 의사결정나무는 과적합(Overfitting)을 방지하기 위해 가지치기(Pruning) 과정을 거침
👉 이는 나무의 깊이를 제한하거나 리프 노드의 최소 샘플 수를 설정하여 모델을 일반화하는 역할을 함
사용 예시
from sklearn.tree import DecisionTreeRegressor
model = DecisionTreeRegressor() #인스턴스 생성
model.fit(독립변수, 종속변수)
predict = model.predict(test데이터셋)
의사결정나무 회귀 모델의 장점
- 직관적인 해석 가능
- 비선형 관계 모델링
- 이상치에 강함
주의
데이터의 특성에 따라 과적합되기 쉽고 다른 알고리즘보다 성능이 낮을 수도 있음
👉 이러한 단점을 보완하기 위해 앙상블 기법인 랜덤 포레스트(Random Forest)를 사용한다
728x90
'Machine Learning' 카테고리의 다른 글
[회귀] 자전거 대여 수요 예측 (0) | 2023.08.23 |
---|---|
데이터 분리 : train 데이터와 Validation 데이터 (0) | 2023.08.17 |
[DecisionTreeRegressor] 회귀 트리 모델 (0) | 2023.08.14 |
[pingouin] 통계분석 결과를 데이터프레임으로 확인할 수 있는 라이브러리 (0) | 2023.08.11 |
[탐색적 데이터 분석] 위치 추정과 변이 추정 (0) | 2023.03.09 |