1 互信息
sklearn 笔记整理:sklearn.metrics_sklearn中的mean absolute percentage error_UQI-LIUWJ的博客-CSDN博客
2 最大信息系数(MIC,Maximal Information Coefficient)
2.1 方法介绍
- 衡量两个变量X和Y之间的关联程度,线性或非线性的强度
- 相较于Mutual Information(MI)互信息而言有更高的准确度,是一种优秀的数据关联性的计算方式
2.2 计算原理
- 给定i、j,对X、Y构成的散点图进行i列j行网格化,并求出最大的互信息值(下式的分子)
- 对最大的互信息值进行归一化(下式的分母)
- 选择不同尺度下互信息的最大值作为MIC值(下式max部分)
2.3 举例
2.3.1 网格化
- 比如以下数据,我们有三种不同的网格方式(|X|=|Y|=2时,红黄绿三种分割方式)
2.3.2 计算对应的互信息
- 以红色的为例,左上、右上、左下、右下,每个区域对应的数据点数量为1,4,4,1
- 将数据点归一化得到四个区域的数据点频率“0.1,0.4,0.4,0.1
2.3.3 互信息归一化
- 2.3.2 计算出来的互信息除以log(min(|X|,|Y|))
2.3.4 计算MIC
-
选择不同分割尺度下归一化互信息的最大值作为MIC值
3 Python实现
import numpy as np
from minepy import MINE
x = np.linspace(0, 1, 1000)
y = np.sin(10 * np.pi * x) + x
mine=MINE()
mine.compute_score(x,y)
mine.mic()
#1.0000000000000002