본문 바로가기

DATA SCIENCE/ADSP

[ADsP] 3-5. 정형 데이터 마이닝 (2) 의사결정나무 분석

1. 분류 분석 (Classification)

  • 레코드의 범주형 속성값 미리 알아 맞히는 기법
    * 예측 분석 (Prediction) : 레코드의 연속형 속성값 미리 알아 맞히는 기법
  • 데이터 실체가 어떤 그룹에 속하는지 예측하는데 사용하는 기법
  • 각 그룹이 미리 정의되어 있는 supervised learning 기법 (clustering과의 차이점)
  • 분류 모델링 예시 : 신용평가모형, 사기방지모형, 이탈모형, 고객 세분화

2. 의사결정나무 (Decision Tree)

  • 분류함수를 의사결정 규칙으로 이뤄진 나무 모양으로 그리는 방법
    - root node, child node, parent node, termial node, internal node, branch, depth로 구성
  • 주어진 입력값 대해 출력값 예측 (분류나무, 회귀나무 모형 존재)
  • 최종모형의 예측력 및 해석력 중요
  • 활용
    - 세분화 : 그룹별 특성 발견
    - 분류 : 예측변수에 근거하여 목표변수 범주를 등급으로 분류
    - 예측 : 자료에서 규칙 찾아내어 미래 사건 예측
    - 차원축소 및 변수선택 : 목표변수에 큰 영향 미치는 변수 골라냄
    - 교호작용효과 파악 : 여러 예측변수 결합하여 목표변수에 작용하는 규칙 파악
    - 범주 병합 또는 연속형 변수 이산화 : 범주를 합치거나 연속형 변수를 여러 등급으로 범주화(이산화)
  • 특징
    - 설명 용이하며 모델이 계산적으로 덜 복잡함
    - 비정상 잡음 데이터에 대해서도 민감하지 않게 분류 가능
    - 변수끼리 상관성이 높아도 크게 영향받지 않음
  • 분석 과정
    1) 성장 단계 : 각 마디마다 최적 분리규칙 찾아 나무 성장시키는 과정
    - 적절한 정지규칙(stopping rule)을 만족시키면 중단
    - 최적 분할의 결정 : 불순도 감소량을 가장 크게 하는 분할
    2) 가지치기 단계 : 오차가 높아질 확률이 높거나 부적절한 추론 규칙을 갖고 있는 가지, 불필요한 가지 제거
    - 나무 크기 = 모형의 복잡도
    - 마디에 속하는 자료가 일정 수 이하일 때, 분할을 정지하고 비용-복잡도 가지치기 이용하여 성장시킨 나무 가지치기 함
    3) 타당성 평가 단계 : 이익도표, 위험도표, 시험자료 이용하여 의사결정나무 평가
    4) 해석 및 예측 단계 : 구축된 나무모형 해석, 예측모형 설정

> tree(Y~X, data)

3. 불순도의 여러가지 측도

  • 카이제곱 통계량 : 각 셀에 대한 (기대도수-실제도수)^2/기대도수 의 합
  • 지니 지수 : 2{P(Good in Left)P(Bad in Left)P(Left)+P(Good in Right)P(Bad in Right)P(Right)}
  • 엔트로피 지수 : Entropy(Left)P(Left)+Entropy(Right)P(Right)
    * Entropy(Left) = -P(Good in Left)log2P(Good in Left) - P(Bad in Left)log2P(Bad in Left)

4. 여러 가지 의사결정나무 알고리즘

  • CART (Classification And Regression Tree)
    - 가장 많이 활용되는 의사결정나무 알고리즘
    - 범주형 : 지니지수 / 연속형 : 분산 이용한 이진분리
  • C4.5 & C5.0
    - 각 마디에서 다지분리(multiple split) 가능
    - 범주형 입력변수는 범주 수만큼 분리
    - 불순도 측도 : 엔트로피지수
  • CHAID(CHi-squared Automatic Interaction Detection)
    - 가지치기 하지 않고 적당한 크기에서 모형 성장 중지
    - 입력변수 범주형만 가능
    - 불순도 측도 : 카이제곱 통계량

5. 성과분석과 스코어링

  • party 패키지
    - 의사결정나무 사용하기 편한 분류 패키지 중 하나
    - 분실값 잘 처리하지 못하는 단점 존재

> model.tree <- ctree(Y~X, data=data)
> plot(model.tree)
> plot(model.tree, type="simple")
> table(predict(model.tree), data$Y)
> tree.pred <- predict(model.tree, newdata=test.data)   # test data 적용
> table(tree.pred, test.data$Y)

 

출처 : ADsP 데이터 분석 준전문가 (윤종식 저)

반응형