[멋사][AI] 결정트리, CART

티나(Tina)·2022년 11월 3일
0

멋사AI

목록 보기
16/41

결정트리 (Decision Tree)

참고
[ML] 결정트리(Decision Tree) - 기본구조와 CART, ID3 알고리즘
의사결정 나무 (Decision Tree) 기본 설명
결정 트리 학습법 - 위키백과, 우리 모두의 백과사전

결정 트리 학습법은 머신러닝 지도학습에서 가장 유용하게 사용되고 있는 기법 중 하나이다.

결정트리는 데이터에 있는 규칙을 통해 데이터셋을 분류/예측하는 지도학습(supervised) 모델이다.

  • 결정 노드(Decision Node): 규칙 조건
  • 리프 노드(Leaf Node/Terminal Node): 결정된 클래스의 값
  • 서브 트리(Sub Tree): 새로운 규칙 조건마다 생성됨

목표 변수가 유한한 수의 값을 가지는 것을 분류트리라 하고,

결정 트리 중 목표 변수가 연속하는 값, 일반적으로 실수를 가지는 것은 회귀트리라 한다.

그렇다면 트리를 어떻게 쪼개나갈 것인가? 

최대한 균일한(순도가 높은) 데이터 세트를 구성할 수 있도록 분할하는 것이 중요하다.

결정 노드는 정보 균일도가 높은 데이터 세트를 먼저 선택할 수 있도록 규칙 조건을 만든다.

→ 이 판단을 불순도를 기준으로 한다.

→ 즉 가장 낮은 지니계수를 가진 피처가 결정트리에서의 루트 노드가 된다.

단점

의사결정 나무 알고리즘은 간단하면서 효과적인 알고리즘이지만, 과적합 (Overfitting)에 취약하다는 단점이 있다.

이러한 과적합을 막기 위해, 가지치기 (pruning) 과정을 수행 (사전 가지치기 (pre-pruning) & 사후 가지치기 (post-pruning))

  • 나무의 최대 깊이 (depth)를 제한
  • 자식 노드의 최소 샘플 수를 설정
  • impurity/error 의 최소값을 설정
  • impurity/error 변화값의 최소값을 설정

결정트리를 만드는데 여러 가지 알고리즘이 사용될 수 있다. 가장 대표적인 것은 CART 알고리즘과 ID3 알고리즘이다.

  • CART(Classification and Regression Trees) - metric으로 Gini Index(Classification) 사용
  • ID3(Iterative Dichotomiser 3) - metric으로 Entropy function과 information gain 사용

CART (Classification And Regression Tree) 알고리즘

참고
의사결정 나무 (Decision Tree) CART 알고리즘 설명

  • 불순도: Gini index Gini index는 엔트로피와 같은 불순도 (Impurity) 지표이다. Gini index는 엔트로피와 같이 분류가 잘 될 때 낮은 값을 갖습니다. 따라서 CART 알고리즘에서는 모든 조합에 대해 Gini index를 계산한 후, Gini index가 가장 낮은 지표를 찾아 분기합니다.
  • Binary tree 가지 분기 시, 여러 개의 자식 노드가 아닌 단 두 개의 노드로 분기한다 https://tyami.github.io/assets/images/post/ML/2020-10-05-CART/2020-10-05-cart-binary-tree.png ID3 의 경우 모든 클래스 (e.g., Sunny, Overcast, Rain) 로 가지 생성 CART는 ‘하나의 클래스와 나머지’와 같이 가지가 생성
  • Regression tree CART 알고리즘은 Regression(회귀)를 지원한다. 회귀 트리 (Regression Tree)를 사용 할 때는, 분기 지표를 선택할 때 사용하는 index를 불순도 (Entropy, Gini index)가 아닌, 실제값과 예측값의 오차를 사용한다.

https://tyami.github.io/assets/images/post/ML/2020-10-05-CART/2020-10-05-regression-tree-example2.png

https://tyami.github.io/assets/images/post/ML/2020-10-05-CART/2020-10-05-regression-tree-example3.png

x<0.3 과 x<0.6 지표로 하고 x값이 들어올 경우, training data (파란 점)의 평균값 (빨간 실선)을 예측값으로 내놓습니다.

실제값과 예측값의 오차는 RSS나 MSE 와 같은 값으로 나타낸다.

profile
열심히 사는 중

0개의 댓글