- Decision Tree (의사결정나무)

Decision Tree (의사결정나무)는 분류(Classification)와 회귀(Regression) 모두 가능한 지도 학습 모델 중 하나입니다.

의사결정나무는 데이터를 분석하여 이들 사이에 존재하는 패턴을 예측 가능한 규칙들의 조합으로 나타내며,

그 모양이 나무와 같다고 해서 의사결정나무라 불립니다.

 

 

 - 트리 구조 형태의 모델
   · Nodes: 속성에 대한 결정을 표시 (income 조건)
   · Branches: 결정의 선택을 표시 (선택결과)
   · Leaf nodes: 결정 조합의 결과를 나타냄 (말단 node에서 결정)

 - 의사 결정 트리는 분할 및 정복 접근 방식을 사용하여 구축됩니다.

 

 

- Partitioning Up the Predictor Space

  - 분류 / 회귀 문제에서 예측을하는 한 가지 방법은 예측자 공간을 나누는 것입니다.

   (i.e. all the possible values for X1, X2, ..., Xp) into distinct regions, say R1, R2, ..., Rk


 - 그런 다음 특정 지역 (예 : Rj)에 해당하는 모든 X에 대해 동일한 예측을 합니다.
 

 - 지역 Rj의 경우 최상의 예측은 다음과 같습니다.
      · 해당 지역 내 훈련 데이터 중 가장 일반적인 카테고리 (in case of classification)
      · 지역 Rj에 해당하는 훈련 데이터의 모든 응답의 평균 (in case of regression)

 

 

- C5.0 algorithm

 - C5.0은 순도 측정을 위해 엔트로피를 사용합니다.


 - Entropy 란
   · '무질서한 정도', '규칙적이지 않은 정도', '불확실성'
   · 정보 이득이 높을수록 동질 그룹을 만드는 기능이 더 좋습니다.

     (information gain이 큰 feature로 나누면 비슷한 성질의 그룹으로 만들어짐)

 

 

- 모델 학습

 - 재귀적 분기 (recursive partitioning)


 - 가지치기 (pruning)
   · A large tree (i.e. one with many terminal nodes) may tend to overfit the training data


 - How do we know how far back to prune the tree? 
   · We use cross validation

     (cross validation: training 데이터를 여러개로 나누어 test를 반복하는 과정) to see which tree has the lowest error rate.

 

 

- Decision Tree Pros and Cons

 장점.

   - 고차원 데이터를 다루는데 문제가 많지 않다. (but. sample이 많아지면 효울적이지 않다.)
   - 변수 타입에 따라 영향을 받지 않는다.
   - 해석이 쉽다. (해석이 중요한 Domain에서 적용)


 단점.

   - 성능이 복잡한 데이터에 대해서는 다른 복잡한 model 보다 떨어지는 경우가 있다.

 

 

- Problem with a single best model

 - 의사 결정 트리는 높은 분산으로 어려움을 겪습니다.

   (variance: training 데이터를 조금 바꿨을 경우, 결과가 많이 바뀌는가 안바뀌는가)

 

 - 이러한 Decision tree의 문제를 풀기 위해 아래의 방식을 사용합니다.
   1. bagging (bootstrap aggregating)을 사용: 여러 번 뽑아 각 모델을 학습시켜 결과를 집계 (Aggregating) 하는 방법
   2. Ensemble methods: 여러개의 model을 종합적으로 판단하여 예측
   3. Bootstrapping: training 데이터를 resampling 하여 여러개의 데이터를 생성하는 것

 

 

- Bagging

Bagging은 Bootstrap Aggregation의 약자입니다. 배깅은 샘플을 여러 번 뽑아(Bootstrap) 각 모델을 학습시켜 결과물을 집계

(Aggregration)하는 방법입니다


 - Bagging (Bootstrap Aggregating) => 'Random Forest'
   · Bootstrap + voting (used for classification)
   · Bootstrap + Averaging (used for regression)


 - 정확도와 안정성이 상승


 - variance 및 overfitting을 줄일 수 있다.

   (sample의 평균을 내면 분산이 줄어드는 효과가 있어 variance가 줄어든다.)

 

 

- Random Forest (랜덤포레스트)

기계 학습에서의 Random Forest는 분류, 회귀 분석 등에 사용되는 앙상블 학습 방법의 일종으로,

훈련 과정에서 구성한 다수의 결정 트리로부터 부류(분류) 또는 평균 예측치(회귀 분석)를 출력함으로써 동작합니다. 

 

 - Ensemble methods: 약한 여러 학습자를 결합하여 더 강한 학습자를 만듭니다.


 - Random Forests
   · 같은 데이터로 부터 의사결정나무를 여러 개 만들어 그 결과를 종합해 예측 성능을 높이는 기법 (Bagging)
   · 각 나무를 만들 때, m개의 feature들을 무작위로 선정하여 학습시킴

 

 

- Prediction for Random Forest

 - For prediction, there are two approaches:
   1. majority vote (투표 방식): 0 or 1로 각각 트리에서 비율이 다를 수 있음
   2. average the probabilities: 트리 내의 확률 자체를 평균


 - 일반적인 "Bagging"과 달리 "Random Forest"는 m개의 feature들만 선정하여 

   굉장히 영향을 많이 미치는 feature을 배재하고 뽑을 수 있기 때문에 "de-correlates" 하다.

 

 

 아주대학교 정보통신대학원 손경아 교수님의 기계학습 및 데이터 마이닝 강의를 바탕으로 작성하였습니다.

 학습 목적으로 포스팅 합니다.

 

'Machine Learning' 카테고리의 다른 글

Performance Metrics  (1) 2020.09.17
Evaluation  (0) 2020.09.17
Support Vertor Machine  (0) 2020.09.12
KNN algorithm  (0) 2020.09.12
탐색적 데이터 분석 (Exploratory Data Analysis)  (0) 2020.09.05