본문 바로가기
Note/Machine learning

의사 결정 트리

by sooyeoon 2021. 8. 8.

데이터의 imbalance가 심하고 데이터가 작은 경우,

오히려 딥러닝보다 여러 개의 decision tree를 만들어놓고 합해서 다시 학습시키는 앙상블 학습 모델인

random forest나 xgb 같은 계열이 성능을 더 잘 나타낼 수 있음

 

의사결정트리는 결과를 시각화해서 보여주는데, 

의사결정트리로 데이터가 분류되는 과정을 시각화해서 보면,

어떤 특성을 제일 먼저 선택해서 분류했는지 확인할 수 있다.

 

이때, 데이터 특성이나 양이 많다면 계산량도 증가하므로 시간이 오래걸리는 단점이 생기며, 이러한 단점을 보완한 랜덤포레스트 방식이 있다 

⇒ 의사결정 트리를 여러 개 생성한 뒤, 학습시키는 앙상블 학습법

각 트리의 결과들을 학습시키는 방법에 따라서 종류가 나뉜다.

 


분류 예제

매장 손님의 국적 분류 예측을 한다면

 

데이터 조사

  • 건물 입구에서부터 직원이 있는 곳까지 걸어 들어오는 시간
  • 걸어 들어오면서 주변의 상품을 둘러보는 횟수
  • 성별

특성을 학습한 뒤 목적변수를 예측한다.

 

 


 

매장 데이터의 의사 결정 트리

 

walk < 34 인경우 → 중국인

             walk <36 이면서 view ≥ 10 → 중국인

             walk <36 이면서 view < 10 → 일본인


 

함수를 호출하고 결과를 나타내는 것보다 중요한 것은,

  • 결과가 나왔을 때, 믿을만한 것인지 파악
  • 여러 모델의 결과물 중에 어떤 모델을 선택할 것인지
  • 모델이 overfitting이 일어났을 때, 규제해서 모델의 성능을 향상시키는 작업

의사결정트리가 어떻게 생성되는지 이해해야만 조정이 가능함

의사결정트리의 핵심은 판별기준

왜 walk < 34를 첫번째 분류기준으로 삼았을까?

중국인과 일본인을 한번에 분류가 가능한 조건 → 제일 좋은 기준


동작원리

  • 판별에 사용하는 변수선택이 중요
  • 데이터의 순도가 가장 높아지도록 그룹을 나누는 작업

*데이터의 순도? → 중국인 or 일본인 만 모여있는 상태

  • 순도가 100% 일때 가장 좋은 변수
  • 가장 이상적인 의사결정트리는 순도 100% 로 나뉘는 모델이다.

그렇다면 의사결정트리는 순도100%가 되는 기준을 어떻게 찾았을까?

의사결정트리는 정보량이라는 개념을 가지고 계산한다

 

 

정보량

  • 어떤 데이터가 포함하고 있는 정보의 총 기대치, 정보의 가치
  • 해당 사건이 발생할 확률의 역수에 비례한다
  • ex) 내일 해가 동쪽에서 뜰 확률 : 100% → 정보량이 없음, 정보가 주는 가치가 없음
  • 모든사람에게 알려지지 않은 희귀한 정보 , 발생하기 어려운 사건의 확률 → 정보량이 큼, 정보의 가치가 높음
  • 정보량 = log(1/p) (확률의 값이 커질 수 있기 때문에 로그를 취함)

 

정보량과 엔트로피

  • 정보량과 발생확률의 곱 = 엔트로피 = 정보량의 기대치
  • 엔트로피(entropy)는 데이터의 순도와 관련됨
  • 물리에서 굉장히 혼잡한 상태 = 엔트로피가 높은 상태, 안정적인 상태 = 엔트로피가 낮은 상태로 표현

기계가 학습하면서 찾아가는 방향은 엔트로피가 높은 상황일까 낮은 상황일까?

변수가 마구 섞여있는 상황이 아닌, 순도 100%의 정확히 분류되어 있는 상황을 찾아야 하므로

엔트로피가 낮은 상황이어야 한다.

사건이 동시발생 → 사건의 곱으로 나타내는데, 로그에서는 log(사건 A + B)으로 표현되며 역수는 마이너스 - 로 표현함

 

엔트로피를 구하는 공식

p1은 사건 A, p2는 사건 B로 사건이 동시에 발생하는 상황을 나타낸 것

결국, 의사결정트리에서는 엔트로피 값이 작은 방향으로 조건을 분리한다

 

의사결정 트리에 적용

  • 어떤 변수를 기준을 나누었을 때 나누어진 각 하위 그룹이 얼마나 동질성 있게 = 데이터의 순도가 높아지도록 = 엔트로피의 값이 낮아지도록 잘 나누어지는지가 관건
  • 동질성이 낮으면 = 데이터의 순도가 낮아지고 = 엔트로피의 값은 높아진다
  • 의사결정트리의 알고리즘

데이터 선택 → 변수를 통해 기준을 다양하게 나눈다 → 엔트로피의 값이 낮은 것을 우선적으로 기준을 선택 → 모든 데이터가 순도100%가 될때까지 반복 분류함

 

가장 우수한 구분 변수 찾기

구분 변수 → 변수를 분류하는 기준

  • 의사결정 단계마다 그룹을 가장 잘 나누는 변수 찾기
  • 순도의 변화를 나타내기 위해 그룹을 나누기 전후의 엔트로피 변화량을 계산하여 측정 → 정보 이득 IG (Information Gain)

 

의사 결정 트리의 규제

의사결정트리에서도 과적합이 발생할 수 있는데,

훈련데이터를 맞추기위해 모든 데이터의 순도를 100%로 분류했을 경우, 트리가 너무 커짐 → 결코 좋은 모델이 될 수 없음

의사결정 트리에서는 과도한 분류를 피하기 위해 가지치기 (Pruning)을 수행한다.

  • pre-pruning : 미리 정한 조건을 만족하면 분류를 멈춤 (트리의 깊이를 지정, 순도지정) → 가장 많이 사용
  • post-pruning : 일단 자세하게 트리를 만든 후, 트리의 구조를 줄임

의사결정트리는 데이터의 불균형 영향을 덜받는 알고리즘으로 알려져있으나,

데이터의 크기나 feature가 너무 많을 경우 해석이 힘들어지며 계산량이 많아짐.


랜덤 포레스트 (Random Forest)

  • 의사 결정 트리의 성능을 개선한 방법
  • 여러 모델의 평균치를 구하는 앙상블 학습 모델
  • 주어진 훈련 데이터의 일부만 사용하여 여러 개의 모델을 만들어보고 그 중 가장 좋은 모델을 선택하는 방식
  • 영향력이 큰 특징 변수만 찾아 사용하므로, 특징 변수가 많은 경우 사용하기 적합
  • 모델의 동작을 직관적으로 설명하기 어려우며 (의사결정트리보다는) 계산량이 많아진다는 단점

데이터가 정형데이터이며 , feature나 데이터의 양이 크지 않다면 의사결정트리 모델만을 사용해도 되지만

성능이 좋지 않고 데이터의 특징이나 사이즈가 크다면 랜덤포레스트를 이용하는 것이 좋다.

'Note > Machine learning' 카테고리의 다른 글

데이터 변환  (0) 2021.08.08
데이터 정제  (0) 2021.08.01
모델 선택  (0) 2021.08.01
기계학습 개요(2)  (2) 2021.07.18
기계학습 개요  (1) 2021.07.18