엔트로피 기반 이산화란?
엔트로피 기반 이산화(entropy-based discretization)는 지도 학습(supervised) 방식의 하향식(top-down) 분할 기법입니다. 이 방법은 계산 과정과 분할 지점(split-point)을 결정할 때 클래스 분포 정보를 능동적으로 활용합니다. 통계 속성 A를 이산화할 때, 엔트로피가 최소가 되는 A의 값을 분할 지점으로 선택하고, 그 결과로 얻어진 구간들을 재귀적으로 다시 분할함으로써 계층적 이산화(hierarchical discretization)를 수행합니다.
이러한 이산화 과정은 속성 A에 대한 개념 계층(concept hierarchy)을 형성합니다. 데이터 집합 D가 여러 속성들과 하나의 클래스 레이블(class-label) 속성으로 기술된 튜플들을 포함한다고 가정해 보겠습니다. 클래스 레이블 속성은 각 튜플이 어느 클래스에 속하는지를 나타냅니다. 집합 내 속성 A에 대한 엔트로피 기반 이산화의 기본 절차는 다음과 같습니다.
분할 지점(Split-point)의 개념
속성 A의 각 값은 잠재적인 구간 경계, 즉 분할 지점으로 취급될 수 있습니다. 어떤 분할 지점은 조건 A ≤ 분할 지점을 만족하는 부분집합과 A > 분할 지점을 만족하는 부분집합으로 D의 튜플들을 나누며, 이를 통해 이진(binary) 이산화가 이루어집니다.
엔트로피 기반 이산화는 튜플의 클래스 레이블에 관한 정보를 사용합니다. 직관적으로 설명하면, 속성 A와 특정 분할 지점을 기준으로 D의 튜플들을 분할했을 때의 분류 결과를 살펴보는 것입니다.
예를 들어 두 개의 클래스가 있다면, 클래스 C1의 튜플들은 한쪽 파티션으로, 클래스 C2의 튜플들은 다른 쪽 파티션으로 나뉘기를 기대할 것입니다. 그러나 실제로는 그렇게 깔끔하게 나뉘지 않는 경우가 많습니다. 첫 번째 파티션에 C1의 튜플이 대부분 포함되더라도 일부 C2 튜플이 섞여 있을 수 있습니다. 이때 속성 A로 분할했을 때 D의 튜플을 분류하는 데 필요한 기대 정보량(expected information requirement)은 다음과 같이 주어집니다.
$$\mathrm{Info_A(D)\:=\:\frac{\mid\:D_1\:\mid}{\mid\:D\:\mid}Entropy(D_1)\:+\:\frac{\mid\:D_2\:\mid}{\mid\:D\:\mid}Entropy(D_2)}$$여기서 D1과 D2는 각각 조건 A ≤ 분할 지점과 A > 분할 지점을 만족하는 D의 튜플들을 의미하며, |D|는 D에 포함된 튜플의 총 개수입니다. 주어진 집합에 대한 엔트로피는 해당 집합 내 튜플들의 클래스 분포를 기반으로 계산됩니다.
엔트로피 계산 공식
예를 들어 m개의 클래스 C1, C2, ..., Cm이 주어졌을 때, D1의 엔트로피는 다음과 같이 정의됩니다.
$$\mathrm{Entropy(D_1)}\:=\:-\displaystyle\sum\limits_{i=1}^m P_i{\log_{2}(P_i)}$$여기서 Pi는 집합 내 튜플들이 클래스 Ci에 속할 확률을 나타냅니다. 로그의 밑이 2인 이유는 정보를 비트(bit) 단위로 측정하기 위함입니다.
재귀적 분할과 중단 기준
분할 지점을 결정하는 이 과정은 특정 중단 기준(stopping criterion)이 충족될 때까지 각 파티션에 대해 재귀적으로 적용됩니다. 대표적인 중단 기준은 다음과 같습니다.
- 모든 후보 분할 지점에서의 최소 정보 요구량이 작은 임계값 ε보다 작아지는 경우
- 생성된 구간의 개수가 임계값 max_interval을 초과하는 경우
이러한 방식으로 엔트로피 기반 이산화는 데이터의 클래스 정보를 최대한 보존하면서 연속형 속성을 의미 있는 구간들로 나누어, 분류 모델의 성능 향상에 기여할 수 있습니다.