/ AI

의사결정트리

의사결정트리 (Decision Tree)

기본적으로 ChatGPT를 이용하여 틀을 잡고 만들어갈 것이며, 하나씩 해결해나가는 느낌으로 ML을 복습 및 검토한다.

의사결정트리 정의

  • 분류(Classification)와 회귀(Regression) 모두에 사용되는 지도학습(Supervised Learning) 알고리즘 중 하나로, 주어진 데이터를 바탕으로 각 데이터의 속성값들을 특정 규칙에 따라 분류하거나 예측하는 모델입니다.
  • 분류(Classification) 문제에서 주로 사용
    • 예를 들어
      • 스팸 메일 필터링에서 “스팸” 또는 “스팸이 아님”으로 분류
      • 환자의 건강 상태를 “양성” 또는 “음성”으로 분류하는 등의 문제에 적용
  • 데이터를 여러 조건으로 분류하고, 이를 통해 최종 결과를 도출
  • 분류 과정에서 각 조건가중치중요도를 계산하여
    • 각 조건의 중요도를 파악
  • 모델의 설명력이 높다는 장점
    • 모델의 결과를 해석하기 쉽고
    • 입력 변수의 중요도를 알 수 있어서
  • 과적합(Overfitting)의 문제가 발생
    • 방지하기 위해 가지치기(Pruning) 등의 방법을 사용

의사결정트리 알고리즘 동작 순서

  1. 데이터셋 분할
    • 입력 데이터를 속성값에 따라 여러 개의 부분 집합으로 나눕니다.
  2. 속성 선택
    • 분할된 부분 집합들 중에서 정보 이득(information gain)이 가장 큰 속성을 선택합니다.
    • 정보 이득은 분할 전과 후의 엔트로피 차이를 나타내는 지표입니다.
  3. 의사결정노드 생성
    • 선택된 속성을 기준으로 의사결정 노드(decision node) 를 생성합니다.
  4. 하위 트리 생성
    • 선택된 속성값에 따라 의사결정 노드 아래에 하위 트리를 생성합니다.
  5. 재귀적으로 반복
    • 생성된 하위 트리에 대해서도 위 과정을 반복합니다.
    • 트리의 최상위 루트 노드에서부터 가장 하위 노드까지 도달할 때까지 위 과정을 반복합니다.

분류 의사결정트리

데이터의 특징을 기반으로 하나의 규칙 세트를 만들어내는 것
즉, 특정 특징들을 분석하여 특정 규칙을 찾아내고 그 규칙에 따라 데이터를 분류

  1. 데이터셋에서 가장 중요한 특징을 선택합니다. 이를 기준 특징이라고 부릅니다.
  2. 기준 특징을 기반으로 하위 데이터셋으로 데이터를 분할합니다.
  3. 분할된 하위 데이터셋에서 가장 중요한 특징을 선택합니다. 이를 기준 특징으로 새로운 가지(branch)를 생성합니다.
  4. 이러한 분할과 가지 생성을 재귀적으로 반복합니다. 즉, 하위 데이터셋에서 더 이상 분할할 수 없을 때까지 분할을 수행합니다.
  5. 분할된 데이터셋의 각 영역은 하나의 클래스에 할당됩니다.
  6. 마지막으로, 새로운 데이터가 들어올 때, 분류하기 위해 의사결정트리를 따라가며 최종적으로 해당 데이터가 속한 클래스를 결정합니다.
  • 의사결정트리 분류 알고리즘은 분할하기 위한 최상의 특징을 선택
  • 각 분할에서 최상의 특징을 다시 선택
  • 데이터가 특정 클래스에 속할 확률을 계산하는 방식으로 작동
  • 이를 통해 모델은 분류하기 위해 데이터의 특징을 잘 파악하여, 클래스를 예측하기 위한 최상의 규칙을 생성합니다.