엔트로피 (Entropy)
엔트로피(Entropy)는 주어진 데이터 집합의 혼잡도를 의미한다. 즉, 주어진 데이터 집합에서 서로 다른 종류의 레코드들이 섞여 있으면 엔트로피가 높고, 같은 종류의 레코드들이 섞여 있으면 엔트로피가 낮다.
엔트로피 값은 0에서 1사이의 값을 가지며, 가장 혼합도가 높은 상태의 값이 1이고, 반대는 0이다.(하나의 레코드로만 구성된 상태의 값) Decision Algorithm에서는 엔트로피가 높은 상태에서 낮은 상태가 되도록 데이터를 특정 조건을 찾아 나무 모양으로 구분해나간다.
엔트로피 값 계산 방법
(S: 주어진 데이터들의 집합, C: 레코드(클래스) 값들의 집합, freq(Ci,S): S에서 Ci에 속하는 레코드의 수, |S|: 주어진 데이터들의 집합의 데이터 개수)
엔트로피 값은 레코드 값의 포함 비율에 로그를 적용하고 다시 가중치로 곱한 값을 모두 더하는 식이다.
log2 함수 적용을 통해 마이너스 값이 나타나므로 전체 수식 값에 마이너스를 붙여주어 0에서 1사이의 값을 갖게 한다. (수정, KDG님 감사합니다.)
원래 log2(1/p)로 계산하는 것이고, 로그 성질에 의해 -를 붙이는 것입니다.
엔트로피는 0에서 1까지의 값을 갖게 되는데, 즉 엔트로피가 0일때는 같은 데이터 결과만 존재하는 것이고 엔트로피가 1일때는 전혀 분리가 안되어 있다는 것이다.
다음은 엔트로피 계산 예시이다.
10명의 회원 중 5명이 우수회원, 5명이 일반회원이라고하면 데이터가 완전히 혼합되어 있으므로 엔트로피 값은 1이된다. 반면 10명 모두 일반회원이거나 10명 모두 우수회원이라면 데이터가 혼합되어있지 않으므로 엔트로피 값은 0이 된다.
다음의 예시로는 10명의 회원이 있는데 5명이 우수회원, 5명이 일반회원인 경우의 계산식이다.
정보이득 (Information Gain)
정보이득이란 어떤 속성을 선택함으로 인해서 데이터를 더 잘 구분하게 되는 것을 말한다. 예를 들어, 학생 데이터에서 수능 등급을 구분하는데 있어 수학 점수가 체육 점수보다 변별력이 더 높다고 하자. 그러면 수학 점수 속성이 체육 점수 속성 보다 정보이득이 높다고 말할 수 있다.
정보이득 개념을 이해하기 위해서는 먼저 엔트로피 개념과 계산 방법을 이해해야한다.
정보이득 계산 식
(S1, S2,...는 상위 노드의 엔트로피)
즉 정보이득의 계산은 상위노드의 엔트로피에서 하위노트의 엔트로피를 뺀 값이다. 그리고 E(A)는 A라는 속성을 선택했을 때 하위로 작은 m개의 노드로 나누어진다고 하면 하위 각 노드의 엔트로피를 계산 한 후 노드의 속한 레코드의 개수를 가중치로 하여 엔트로피를 평균한 값이다.
즉 , Gain(A)는 속성 A를 선택했을 때의 정보이득 양을 계산하는 수식으로 원래 노드의 엔트로피를 구하고,
방금 구한 엔트로피를 선택한 후의 m개의 하위 노드로 나누어진 것에 대한 전체적인 엔트로피를 구한 후의 값을 뺀 결과이다.
Gain(A) 값이 클수록 정보 이득이 큰 것이고, 변별력이 좋다는 것을 의미한다.
'Computer Science > 학부 및 대학원 과목' 카테고리의 다른 글
[소프트웨어 공학] 소프트웨어 테스트원칙 (0) | 2015.11.08 |
---|---|
[소프트웨어 공학] 소프트웨어 테스팅의 종류 (0) | 2015.11.08 |
[인공지능] Machine Learning - Decision Trees (머신러닝 결정트리) (0) | 2015.11.08 |
[인공지능] Supervised learning vs Unsupervised learning (교사학습 vs 비교사학습) (2) | 2015.11.08 |
[WebService] getParameter와 getAttribute의 차이 (0) | 2015.10.18 |