Entropy and Information Gain

Hansss·2021년 11월 29일
0

Statistic/Math

목록 보기
11/11

Entropy

엔트로피는 주어진 데이터 집합의 혼잡도를 의미한다. 주어진 데이터 집합에서 서로 다른 종류의 레코드들이 섞여 있으면 엔트로피가 높고, 같은 종류의 레코드들이 섞여 있으면 엔트로피가 낮다.

엔트로피의 값은 0 ~ 1 사이의 값을 가지며, 가장 혼합도가 높은 상태의 값이 1이고, 반대는 0이다. ( 하나의 레코드로만 구성된 상태의 값 )

계산 방법

S: 주어진 데이터들의 집합,
C: 레코드(클래스) 값들의 집합,
freq(Ci,S): S에서 Ci에 속하는 레코드의 수,
|S|: 주어진 데이터들의 집합의 데이터 개수

엔트로피 값은 레코드 값의 포함 비율에 로그를 적용하고 다시 가중치로 곱한 값을 모두 더하는 식이다.

예시

10명의 회원 중 5명이 우수 회원, 나머지 5명은 일반 회원이라고 한다면 데이터가 완전히 혼합되어 있으므로 엔트로피 값은 1이 된다.

반면 10명 모두 일반회원이거나 10명 모두 우수회원이라면 데이터가 혼합되어 있지 않으므로 엔트로피 값은 0이 된다.

Information Gain

정보이득이란 어떤 속성을 선택함으로 인해 데이터를 더 잘 구분하게 되는 것을 말한다.

예를 들어, 학생 데이터에서 수능 등급을 구분하는데 있어 수학 점수가 체육 점수보다 변별력이 더 높다고 하자. 그러면 수학 점수 속성이 체육 점수 속성보다 정보이득이 높다고 말할 수 있다.

계산 방법

S1, S2, ... 는 상위 노드의 엔트로피

정보이득은 상위 노드의 엔트로피에서 하위노드의 엔트로피를 뺌으로서 계산한다.

그리고 E(A)는 A라는 속성을 선택했을 때 하위로 작은 m개의 노드로 나뉜다고 하면 하위 각 노드의 엔트로피를 계산한 후 노드에 속한 레코드의 개수를 기중치로 하여 엔트로피를 평균한 값이다.

즉, Gain(A)는 속성 (A)를 선택했을 때 정보이득을 계산하는 수식으로 원래 노드의 엔트로피를 구하고, m개의 하위 노드로 나누어진 것에 대한 전체적은 엔트로피를 구한 후의 값을 뺀 결과이다.

Gain(A) 값이 클 수록 정보 이득이 큰 것이고, 변별력이 좋다는 것을 의미한다.

Reference

https://eehoeskrap.tistory.com/13

profile
딥러닝 연습생

0개의 댓글