본문 바로가기
데이터

[데이터 모델링 및 평가] 의사결정 나무(Decision Tree) 내용 정리

by dwoi 2023. 4. 3.

데이터 분석 모델링과 머신러닝에 대한 기본 개념에 대해 학습하고 이를 정리한 내용

 

목차

     


    데이터 모델링

    데이터 분석은 유의미한 정보를 파악하여 의사결정에 도움을 주기 위해 데이터 수집, 가공, 모델링하는 과정을 의미함


    1. 정보이론 기초

    • 잘 일어나지 않는 사건(unlikely event)은 자주 발생하는 사건보다 정보량이 많다(informative)
    • 자주 발생하는 사건은 낮은 정보량을 가짐. 발생이 보장된 사건은 그 내용에 상관없이 전혀 정보가 없다는 것을 의미

    예시자주 발생하는 사건 :  ‘아침에 해가 뜬다’는 메세지로 보낼 필요가 없을 정도로 정보 가치가 없음잘 일어나지 않는 사건 : 오늘 아침에 일식이 있었다’는 메세지는 정보량 측면에서 매우 중요한 사건

     

    1.1. 정보와 엔트로피

    • 정보 : 확률 변수에 음의 로그를 취한 값
    • 엔트로피 : 모든 사건 정보량의 기대값을 의미함. 전체 사건 확률분포의 불확실성을 양으로 표현한 값

     

    정보
    엔트로피

    • 확률이 0.5일때 가장 불확실성이 크므로 불확실성의 지표인 엔트로피가 최대치가 됨

     


    2. 의사 결정 나무

    2.1. 의사 결정 나무란

    • 의사결정나무란 의사결정 규칙을 나무 구조로 도식화하여 분류와 예측을 수행하는 머신러닝 방법론
    • 나무 구조에 의해 추론 규칙이 표현되기 때문에, 모델의 해석력에서 큰 장점을 지님
    • 많이 쓰이는 알고리즘은 ID3, C4.5, CART 등이 있음

     

    2.2. 의사 결정 나무 구축 절차

    • 나무 구조에서 각 분기점(node) 에는 독립 변수의 속성값이 위치함.
    • 각 분기점마다 목표 값을 가장 잘 분류할 수 있는 속성을 배치하고, 해당 속성값이 갖는 값을 이용해 새로운 가지(branch)를 생성

     

    2.3. 가지 분리 기준

    • 분기 때마다 변수의 영역을 두개로 구분하는 절차가 있으며, 이를 구분하는 기준은 ‘불순도’라는 개념을 이용함

     

    • 불순도 : 특정 영역의 데이터 구성이 얼마나 서로 다른 클래스로 섞여 있는지를 나타냄

     

    • 의사 결정 나무는 구분 뒤 각 영역의 불순도(impurity) 혹은 불확실성(uncertainty)이 최대한 감소하도록 하는 방향으로 학습 (반대로 순도(homogeneity)가 최대로 증가)
    • 순도의 증가/ 불확실성의 감소를 정보이론에서 ‘정보획득’이라 표현
    • 불순도를 측정하는 대표적인 방법이 엔트로피와 지니계수

     

    2.3.1. 가지 분리 기준 - 엔트로피

    • 엔트로피 지수를 가장 작게 만드는 예측 변수와 그 때의 최적 분리에 의해서 자식 마디를 생성함
    • A라는 영역의 엔트로피는 아래와 같이 정의되며, pk는 A영역에 존재하는 데이터 중 k class에 속하는 데이터의 비율을 나타냄
    • A‘은 A영역이 특정 기준으로 분할되었을 때를 의미하며, 여기서 Ri 는 분할 전 데이터 가운데 분할 후 i영역에 속한 데이터의 비율을 의미함.

    2.3.2. 가지 분리 기준 - 지니계수

    • 엔트로피와 더불어 불순도의 지표로 많이 쓰이는 지표이며, 마찬가지로 지니 계수를 가장 감소시켜주는 예측 변수와 그 대의 최적 분리에 의해 자식 마디를 생성
    • A라는 영역의 지니 계수는 아래와 같이 정의되며, pk 는 A영역에 존재하는 데이터 중 k class에 속하는 데이터의 비율을 나타냄
    • A‘은 A영역이 특정 기준으로 분할되었을 때를 의미하며, 여기서 Ri 는 분할 전 데이터 가운데 분할 후 i영역에 속한 데이터의 비율을 의미함.

    2.4. 가지치기

    • 의사 결정 나무에서 불순도를 감소시키는 방향으로 재귀적 분기 반복을 진행하다보면 모든 노드의 엔트로피가 0이 될때까지 반복할 수 있음 -> 과적합 발생
    • 모델을 일반화시키기 위해 분기를 적절히 합쳐(merge)주는 과정을 거치는데 이를 가지치기라고 함

    3. 분류 모델 구현

    1. 데이터 입력
    2. 데이터 전처리
    3. 데이터 분할
      1. 7:3으로 분할
      2. train_test_split 함수
    4. 모델 선언 및 학습
      1. fit 함수
    5. 모델 결과 확인
    6. 모델 학습 및 성능 확인

     

     


    마무리

    가장 중요한 건 실습!

    데이터가 처리되는 과정에 대해 반복되므로 저 과정을 체득하는 게 필요!

     


     

    댓글