본문 바로가기
Machine Learning

[Decision Tree] 의사결정나무 모델

by ISLA! 2023. 8. 15.

의사결정나무(Decision Tree)란?

 

  • 데이터의 특징에 따라서 분류(Classification) 또는 예측(Regression)을 수행할 수 있는 트리 기반의 모델
  • 의사결정나무는 의사 결정 규칙을 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류하거나 예측하는 분석 방법
  • 간단하게 표현하자면, 아래 그림처럼 스무고개 방식으로 정답을 구하는 방식

 

 

⭑ 회귀(Regression) 문제에서 사용되는 의사결정나무인 DecisionTreeRegressor의 경우
   : 실제값과 모델의 예측값의 차이(오차)가 최소가 되도록 나무의 가지를 나눈다

 

의사결정나무 회귀 모델의 특징과 작동 방식

  1. 의사결정나무는 독립 변수의 값을 기준으로 데이터를 분할한다
    👉 이때 각 분할은 최대한 순수한 상태로 만들기 위해 정보 이득이 최대가 되도록 선택됨
  2. 분할을 더 이상 수행할 수 없는 상태리프 노드(Leaf Node)라고 함
    👉 리프 노드는 예측값을 가지며, 회귀 문제에서는 평균값을 사용함
  3. 의사결정나무는 과적합(Overfitting)을 방지하기 위해 가지치기(Pruning) 과정을 거침
    👉  이는 나무의 깊이를 제한하거나 리프 노드의 최소 샘플 수를 설정하여 모델을 일반화하는 역할을 함

 

사용 예시

from sklearn.tree import DecisionTreeRegressor
model = DecisionTreeRegressor() #인스턴스 생성
model.fit(독립변수, 종속변수)

predict = model.predict(test데이터셋)

 

 

의사결정나무 회귀 모델의 장점

  • 직관적인 해석 가능
  • 비선형 관계 모델링
  • 이상치에 강함

주의

데이터의 특성에 따라 과적합되기 쉽고 다른 알고리즘보다 성능이 낮을 수도 있음
👉  이러한 단점을 보완하기 위해 앙상블 기법인 랜덤 포레스트(Random Forest)를 사용한다

728x90