의사결정나무(Decision Tree)

장재성·2021년 7월 15일
0

알고리즘 (Algorithm)

목록 보기
5/9

Decision Tree


root node(맨위) 부터 terminal node(맨아래) 까지 특정 조건들에 한하여 발생한 이벤트(변수)들의 값을 입력. 조건이 하나씩 추가 될 때 마다 (ex. sunny, humidity ...) 해당 단계에서의 이벤트 발생여부(변수)를 두개의 영역으로 구분함(play or don't play)
ex) 현재 노드의 조건에서 운동경기가 열렸다면 Play +1 아니라면 Don't Play +1

순도 / 불순도(불확실성)

<변수의 영역을 두개로 구분하기 위한 근거 자료>

1. 순도 / 불순도 측정
1) 먼저 변수공간을 두 영역으로 나눈다.
2) 각 영역의 순도 (homogeneity) / 불순도(impurity) or 불확실성(uncertainty)를 결정
3) 순도가 증가하고 불순도가 감소할 수록 올바른 분류라고 할 수 있고 이런 현상을 정보획득(imformation gain)이라 한다.

  • 이 과정에서 특정 공식을 이용하여 entropy를 측정하고 (공식은 참고링크를 참조), 측정된 entropy의 값이 낮아질수록 순도가 높다는 의미가 되며 따라서 올바르게 이루어진 분류라고 할 수 있다.
    참고 : https://ratsgo.github.io/machine%20learning/2017/03/26/tree/

  • decision tree 는 계산복잡성 대비 높은 예측 성능을 낼 수 있다.

  • 결정경계(decision boundary)가 수직적이어서 특정 형태의 데이터에서만 잘 작동할 가능성이 높다.

  • 이를 보완하기 위한 모델이 random forest이다

  • decision tree와 random forest 모두 파이썬에서 패키지로써 사용이 가능하다.

profile
초심자

0개의 댓글