컴공생의 다이어리
불순도(Impurity)와 엔트로피(Entropy) 본문
불순도(Impurity)
불순도란 다양한 범주(Factor)들의 개체들이 얼마나 포함되어 있는가를 의미한다. 쉽게 말하면 여러 가지의 클래스가 섞여 있는 정도를 말한다. 반대로 순수도(purity)는 같은 클래스끼리 얼마나 많이 포함되어 있는지를 말한다.
예를 들어, 아래와 같이 항아리 3개가 있을 때, 1번과 3번 항아리는 순도 100%라 할 수 있으며, 2번 항아리는 불순도가 높은 상태라 할 수 있다.
이 불순도를 수치화한 지표로 엔트로피(Entropy), 지니계수(Gini Index) 등이 있는데, 불순도를 엔트로피로 계산한 알고리즘이 ID3이며, 지니계수로 계산한 알고리즘이 CART알고리즘이다.
엔트로피(Entropy)
엔트로피란 데이터의 분포의 순수도(purity)를 나타내는 척도이며, 데이터의 순도가 높을 수록 엔트로피의 값은 낮아지고, 많이 섞이면 섞일수록 엔트로피의 값이 커지게 된다.
예를 들어 아래의 어지러진 방은 엔트로피가 크고, 깔끔하게 정리된 방은 엔트로피가 작다고 할 수 있다.
엔트로피의 수식
S | 이미 발생한 사건의 모음 |
c | 사건의 갯수 |
I(x) |
정보량을 의미 |
정보량이란 어떤 사건이 가지고 있는 정보의 양을 의미하며, 이는 식으로 다음과 같다. 여기서 p(x)는 사건 x가 발생할 확률이다. |
|
사건 x가 발생할 확률을 x축, 정보량의 y축으로 그래프를 그리면 아래와 같다. 사건 x가 발생할 확률이 증가할 수록, 정보량은 0에 수렴한다. 즉, 흔하게, 자주 발생하는 사건일수록 그닥 많은 정보를 가지고 있지 않다고 해석할 수 있다. |
앞서 불순도의 항아리 예시에서 빨간 구슬의 비율을 x축, 그에 대한 엔트로피 값을 y축으로 그래프를 그리면 아래와 같다.
- 항아리 순도가 100% 일 때(한 종류의 공만 있는 상태 = 분류하기 좋은 상태), 엔트로피는 0이다.
- 두공이 반반 섞여 있을 때(불순한 상태 = 분류하기 어려운 상태), 엔트로피는 최대값을 갖는다.
즉, 불순한 상태일 수록 엔트로피는 큰 값을 가지며, 불순도가 클 수록 분류하기 어렵다. 엔트로피를 작게하는 방향으로 가지를 뻗어나가며 의사결정트리를 키워나가는 것이 ID3 알고리즘의 핵심이다.
정보이득(Information Gain)
정보이득이란 어떤 속성을 선택함으로 인해 데이터를 더 잘 구분하게 되는 것을 말하며 상위노드의 엔트로피에서 하위노드의 엔트로피의 값을 뺀 값이다.
Information Gain = Base Entropy - New Entropy
'데이터 분석 & 머신러닝' 카테고리의 다른 글
베이즈 정리(Bayes Theorem) (0) | 2021.01.09 |
---|---|
확률(Probability) (0) | 2021.01.09 |
엔트로피, 정보이득 계산과 ID3알고리즘 (0) | 2021.01.09 |
의사결정트리(Decision Tree) (0) | 2021.01.08 |
kNN(k Nearest Neighbor) 알고리즘 (0) | 2021.01.06 |