본문 바로가기

B/Mechine Learning

[ML] 의사결정나무모델(Decision Tree) 개념정리

의사결정나무에 대해서 간단히 정리해보자!


 

결정트리는 분류와 회귀예측이 모두 가능한 CART기반 알고리즘이고, 아마 ML을 배울때 기초 선형대수나 통계을 제외하면 처음으로 접하는 기계학습의 예측모델일것이다. 솔직히 처음 배울때는 쉽다고 생각했는데, Decision Tree(이하 DT라고 칭하겠음)는 이후에 나오는 배깅, 부스팅, 스태킹 등등 여러 CART기반 알고리즘의 토대가 되는 내용이라 베이스가 흔들리니 이후에 것들을 이해할때 조금 찝찝한 부분이 있었다. 이번 기회에 강의를 들으며 정리할 기회가 생겨 좋았다.

 

 

 

본 글은 고려대학교 김성범 교수님의 유튜브 강의 의사결정나무모델 을 듣고 정리한 내용임을 밝힘니다.


 

 

 

먼저 의사결정나무모델은 데이터에 있는 패턴을 변수의 조합을 나무형태로 꾸려서 예측/분류하겠다는 건데, 이는 우리가 예~~전에 흔히 하던 '스무고개'게임과 비슷하다. 질문을 먼저 던지고, 맞느냐 틀리냐에 따라 거를 후보들은 거르고, 생각하고 있는 대상을 향해 정답을 좁혀나가는 것이다.


분류는 데이터가 균일해지도록 (나중에 나오는 information gain과 엔트로피개념 참고) 분할을 하고 비슷한 범주를 갖고 있는 관측치끼리 모아줘서 해결하고, 예측은 비슷한 수치를 갖고 있는 관측치끼리 모아 그것의 평균으로 예측해 해결하겠다는 느낌이다.

 

 

  • 이진분할
    위의 그림을 보다시피 이진분할은 우리가 나눌 변수(분할변수)에서 가지치기를 두가지 방향으로 하게 된다. 특히 분할을 해서 최종적으로 나타나는 5개의 네모박스를 Leaf Node라고 부르고, 최종적으로 우리가 DT를 통해 데이터를 분류한 총 부분집합의 개수가 leaf node의 총합과 같다는 사실이 눈에 띈다.

 

 

 

 

요렇게 3차원 박스와 결정트리를 한꺼번에 비교하면서 같다는걸 느끼는 것도 새로웠고, 리프노드의 관측치 평균으로 새로운 데이터에 대해 예측을 한다는 것도 다시 알게 되었다.

 

 

  • 예측모델 모델링 프로세스
    비용함수(실제값과 예측값의 차이)를 최소로 할때 분할이 가장 잘 되었다고 볼 수 있을텐데, 이를 수식으로 풀어보니 결국 평균으로 예측했을때가 가장 최소가 된다는 것 또한 알 수 있었다.

 

 

 

그리고 마지막으로 분할변수(j)와 분할점(i)을 결정할때는 모든 변수와 가능한 모든 분할점(경계값)을 조합하여 cost funtion의 최소값이 되는 j, s 값을 찾는다는 것을 알았다. 느낌이 왔겠지만 grid search와 굉장히 유사하다고 볼 수 있었

다.

 

 

 

 

 

 

질문과 수정은 달갑게 받습니다 :)