Mutual Information
mutual information 은 와 간 정보를 얼마나 공유하는지를 측정한다: 즉, 한쪽 변수를 앎으로써 다른 변수에 대한 불확실성을 얼만큼 줄일 수 있는지의 척도가 된다.
예를 들어, 와 가 서로 독립이라, 를 아는것이 에 대한 정보를 전혀 주지 않고, 그 반대도 성립한다면 mutual information 의 값은 0 이다.
feature selection 에서 MI 값을 주로 참조하기도 하는데, 만약 classification 문제를 풀때 class 변수와 feature 변수간 MI 값이 1 에 너무 가까우면 활용도가 높다고 생각할 수 있다.
B) 정의
은 KL-Divergence, 는 joint distribution and 와 는 marginal distributions
B.1) 이산 case
pmi 는 pointwise mutual information 이고, 는 a, b 가 동시에 일어날 확률을 의미
Target 과 feature 간 얼마나 연관이 있는지 (feature utility) 알려주는 metric 을 Mutual Information(MI) 이라고 한다.
C) 특성
- MI 값은 항상 nonnegative 이다:
- symmetric:
D) correlation 과 비교
MI 는 correlation 과 비슷한 개념이다. 하지만 선형 관계에 대해서만 판단할 수 있는 correlation 과 달리, MI 는 선형 관계가 아닌 어떠한 관계도 그 상관의 정도를 측정할 수 있다.
하지만 univariate metric 이기 때문에, target 과 feature 의 단일 관계를 파악할 수 있을뿐, feature 간 관계들을 전반적으로 파악하기는 어렵다.
E) 구현
scikit-learn 에서 구현체를 참고할 수 있다.
sklearn.feature_selection.mutual_info_classif — scikit-learn 1.2.2 documentation
F) Relationship
Relation to conditional entropy and joint entropy
와 는 marginal entropy, 그리고 와 는 conditional entropy 이며, 는 joint entropy 를 의미한다.
-
Relation to KL-Divergence
-
mutual information 은 marginal distributions 의 곱 과 joint distribution 의 KL-Divergence 이다
:- 더욱이, 를 conditional mass 또는 density function 이라고 가정하자. 그렇다면, 다음과 같이 표현할 수 있다
:
- 더욱이, 를 conditional mass 또는 density function 이라고 가정하자. 그렇다면, 다음과 같이 표현할 수 있다
-
-
MI 점수 측정하기
- Scikit-learn 에서 제공하는
feature_selection패키지를 활용하면 MI 점수를 구할 수 있다.
- Scikit-learn 에서 제공하는
-
주의할 점
- MI 점수가 낮다고 무작정 쓸모없는 feature 라고 단정지을 수 없다. 데이터 시각화를 통해서 실제로 확인을 해보는 이중 확인 과정을 거쳐야 한다.