概述
理论部分可以参考:https://blog.csdn.net/qq_27586341/article/details/90603140
互信息也是通过衡量x与y的线性关系,来判断特征的重要性,整个算法的思路是:
- x与y构成二维平面
- 对平面进行切分,将平面切块
- 看每个块里x与y的数量关系,如果x与y的数量越接近,互信息越多
示例代码
import pandas as pd
def load_data():
# 这个用来读取数据
from sklearn.datasets import make_classification
cla_x, cla_y = make_classification(n_samples=1000, n_classes=4, n_features=10, n_informative=8)
x = pd.DataFrame(cla_x, columns=['f_1', 'f_2', 'f_3', 'f_4', 'f_5', 'f_6', "f_7", "f_8", "f_9", "f_10"])
y = pd.Series(cla_y)
return x, y
def mic(value_x: pd.DataFrame, value_y):
def cal_mic(x, y):
from minepy import MINE
m = MINE()
m.compute_score(x, y)
return m.mic()
x_values = []
for co_index, col_x in value_x.iteritems():
value = cal_mic(col_x, value_y)
x_values.append(value)
return x_values
if __name__ == '__main__':
x_data, y_data = load_data()
mic_values = mic(x_data, y_data)
print(mic_values)
# mic值,可以选择最大的几个特征
最后
以上就是落后蚂蚁为你收集整理的特征筛选10——MIC最大信息系数(有监督筛选)示例代码的全部内容,希望文章能够帮你解决特征筛选10——MIC最大信息系数(有监督筛选)示例代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复