本文主要是介绍Minepy—使用python计算最大互信息系数(MIC),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MIC 即:Maximal Information Coefficient 最大互信息系数。
https://blog.csdn.net/qtlyx/article/details/50780400
MIC可以用来衡量线性或非线性的相互关系。
算法对比
https://zhuanlan.zhihu.com/p/53092905
MIC算法可以通过python的minpy包来实现。
python 安装 minepy
安装命令:
pip install minepy
安装报错,提示没有C++编译器
https://www.cnblogs.com/xiaoxineryi/p/12405063.html
从Unofficial Windows Binaries for Python Extension Packages(这个网站包含了很多Python扩展包的非官方Windows二进制文件)下载对应的minepy.whl
安装命令
pip install whl路径
安装报错,
ERROR: minepy-1.2.4-cp38-cp38-win_amd64.whl is not a supported wheel on this platform
需要选择和自己Python版本对应的版本
查询python支持的whl格式
from pip._internal import pep425tagsprint(pep425tags.get_supported())
#打印支持的whl版本>>>[('cp37', 'cp37m', 'win_amd64'), ('cp37', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'), ('cp37', 'none', 'any'), ('cp3', 'none', 'any'), ('py37', 'none', 'any'), ('py3', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
下载适合的whl版本,安装成功
使用minpy
https://s0minepy0readthedocs0io.icopy.site/en/1.2.2/python.html
import numpy as npimport pandas as pdfrom minepy import MINEinpath = r'D:\Python\input_data\abc.xlsx'outpath = r'D:\Python\output_data\abc-MIC系数.xlsx'data_df = pd.read_excel(inpath)depend_names = ['变量A','变量B','变量C']output_mic = pd.DataFrame(columns=['变量1','变量2','MIC系数'])for var1 in depend_names:for var2 in depend_names:x = data_df[var1]y = data_df[var2]mine = MINE(alpha = 0.6, c = 15)mine.compute_score(x, y)print(mine.mic())out_dict = {'变量1': var1,'变量2': var2,'MIC系数': mine.mic(),}output_mic = output_mic.append(out_dict, ignore_index=True)output_mic.to_excel(outpath)
这篇关于Minepy—使用python计算最大互信息系数(MIC)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!