결정 트리와 앙상블 기법

조권휘·2022년 7월 15일
0

Codeit_머신러닝

목록 보기
11/13

결정 트리

  • 예/아니오로 답할 수 있는 어떤 질문들이 있고, 그 질문들의 답을 따라가면서 데이터를 분류하는 알고리즘
  • 여러 질문들이 연속적으로 이어질 수 있고, 같은 속성으로 여러개의 질문을 만들 수 있다.
  • 데이터를 분류하는 방법이 직관적이고 쉽게 해석할 수 있다.
  • 트리 : 한 지점에서 시작해서 점점 넓게 퍼져 나가는 형태
  • 노드 : 하나하나의 박스
  • root 노드 : 제일 위에 있는 질문 노드
  • leaf 노드 : 트리의 가장 끝에 있는 노드
  • 깊이 : 트리의 층

지니 불순도(Gini Impurity)

  • 데이터 셋 안에 서로 다른 분류들이 얼만큼 섞여있는지를 나타내주는 척도
  • 2가지로 분류될 경우 0(한 곳으로 다 몰렸을 때)~0.5(균등하게 나눠져 있을 때)의 값을 가진다.
  • 값이 작을수록 데이터 셋이 순수하고, 클수록 데이터 셋이 불순하다.

분류 노드 / 질문 노드 평가하기

  • 분류 노드
    • 데이터 셋이 순수할수록(지니 불순도가 낮을수록) 좋다.
    • ex) 모든 데이터는 모두 독감이다.
  • 질문 노드
    • 나뉘어진 데이터 셋이 순수할수록(지니 불순도가 낮을수록) 좋다.
    • 나뉘어진 노드들의 지니 불순도를 평균을 내서 질문 노드의 지니 불순도를 나타낸다.
    • ex) 고열이 있나요? / 몸살이 있나요?
  • root 노드는 가장 많은 데이터를 처음으로 접하기 때문에 가장 좋은 노드를 고르는 것이 좋다.
  • 분류 노드, 질문 노드의 지니 불순도를 각자 계산하여 이 중 가장 낮은 것을 root노드의 질문으로 고른다.

속성 중요도(Feature importance)

  • 특정 속성 하나가 낮춘 불순도가 얼마나 되는지를 계산한 것
  • 특정 속성을 질문으로 갖는 노드들의 중요도의 평균을 구한 것
  • 최종적으로 구한 값을 속성의 평균 지니 감소(Mean Fini decrease)라고 부르기도 한다.
  • 결정 트리 안에서 그 속성이 얼마나 중요한지를 판단할 수 있다.
  • 노드 중요도(Node Importance)
    • 계산하려는 노드까지 오는 학습 데이터 수랑 불순도를 곱한 뒤, 총 데이터 수로 나눠준다.
    • 특정 노드에서 이 노드 전후로 불순도가 얼마나 낮아졌는지 확인할 수 있다.

본 포스트는 코드잇 강의를 공부하며 정리한 내용입니다! 자세한 설명은 "코드잇 머신러닝 강의를 참고해주세요!

+) 코드잇 강의 바로가기

profile
안녕하세요 :) Data/AI 공부 중인 한국외대 컴퓨터공학부 조권휘입니다.

0개의 댓글