일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- idb2pat
- TensorFlow
- x64
- debugging
- idapro
- Rat
- mock.patch
- data distribution
- Injection
- why error
- ecma
- malware
- Python
- Analysis
- open office xml
- svn update
- error fix
- Ransomware
- hex-rays
- idapython
- 포인터 매핑
- MySQL
- commandline
- javascript
- error
- ida pro
- ida
- NumPy Unicode Error
- h5py.File
- pytest
- Today
- Total
13 Security Lab
Information Gain 개념와 원리 이해하기 본문
information gain 은 information theory 에서 온 개념으로서 machine learning 의 decision tree 를 통해서 알게 되었다.
1. Information Gain
어떤 분류를 통해서 얼마나 information (정보) 에 대한 gain (이득) 이 생겼는 지를 나타낸다.
이 개념은 Entropy 를 통해 계산한다. (엔트로피는 아래서 설명)
어떤 속성(특징)을 선택함으로서 데이터를 더 잘 구분하게 되는 것이다. IG(Information Gain)가 클 수록 "변별력이 좋다" 고 표현 할 수 있다.
Information gain theory에서는 모든 사건이 평균적인 확률을 지닐 때 가장 엔트로피가 높게 나타난다고 표현한다.
Information gain 의 계산은 상위노드의 엔트로피에서 하위노트의 엔트로피를 뺀 값이다.
Math interpretation:
Information gain (InfoGain(t)) measures the number of bits of information obtained for prediction of a class (c) by knowing the presence or absence of a term (t) in a document.
2. Entropy
Original Concept
원래 의미는 열역학의 용어로서 물질의 열적 상태를 나타내는 물리량 단위의 하나이다. 본 개념의 의미는 "무질서의 정도" 를 나타낸다.
즉, 물질의 상태변화의 에너지 전환 과정에서 쓸모 없어지는(손실되는) 어떤 것을 의미하며 그 "어떤 것"이 엔트로피의 생성량을 의미한다.
Information theory - entropy
그 개념을 Information gain theory 에서 데이터의 정보량의 크기를 나타내기 위해에서 사용하였다.
아래의 문장이 잘 와닿는다.
Impurity in an arbitrary collection of data
Entropy와 Knowledge 관계
좀더 살펴보면 아래와 같이 가장 왼쪽은 Entropy의 값이 0 이며, High Knowledge로 표현한다.
가장 오른쪽은 2개의 Class로 나누어져 있고, 2개가 골고루 섞여 있으므로 Low Knowledge "얻어지는 지식이 낮다" 고 표현한다. 이떄, Entropy의 값은 1이 된다.
그러나, 항상 Entropy의 값이 0-1 사이에서 존재하는 것이 아니라 확률변수 클래스의 개수에 따라서 달라지게 된다. (클래스가 많아지면 Entropy max 값이 더 커짐)
골고루 섞여 있다 (무질서) -> 엔트로피가 높다
(거의) 하나의 속성을 가진 것으로만 이루어져 있다 (순수하다) -> 엔트로피가 낮다
엔트로피 계산 방법
--------------------------------
그렇지만 정보이론관점에서 High Entropy -> 복잡도 상, Low Entropy 복잡도 하 의미
Entropy가 0이면 정보량이 적다, Entropy가 1이면 정보량이 많음을 의미한다
Q. Information gain 계산 할때는 항상 Entropy 를 써야하는지?
Information gain에서 정보량을 측정하기 위해 general formula 인 Entropy를 가지고 계산한다. 아래서 언급하는 것 처럼 Entropy를 계산하는 방식이 조금 씩 달라질 수 있다.
Q. Entropy 는 항상 0과 1사이 값을 가지는 지?
No.
일반적으로 쓰이는 1) Bernoulli 방식을 쓰고, 2) two-class problem (분류하고자 하는 종류가 2개) 일때만 (0부터 1사이) 값을 가진다. 클래스가 늘어나면 max 값도 커진다.
계산 하는 방식에 따라
(-무한대, 무한대) 가 될 수도 있으며, 아래 링크를 참고한다.
https://en.wikipedia.org/wiki/Maximum_entropy_probability_distribution
Ref.
https://mariuszprzydatek.com/2014/10/31/measuring-entropy-data-disorder-and-information-gain/
https://medium.com/udacity/shannon-entropy-information-gain-and-picking-balls-from-buckets-5810d35d54b4