mRMR特征选择
1、介绍
Max-Relevance and Min-Redundancy,最大相关—最小冗余。最大相关性保证特征和类别的相关性最大;最小冗余性确保特征之间的冗余性最小。它不仅考虑到了特征和标注之间的相关性,还考虑到了特征和特征之间的相关性。度量标准使用的是互信息(Mutual information)。对于mRMR方法,特征子集与类别的相关性通过各个特征与类别的信息增益的均值来计算,而特征与特征的冗余使用的是特征和特征之间的互信息加和再除以子集中特征个数的平方,因为I(xi,xj)计算了两次。
2、pymrmr库
2.1mRMR方法在pymrmr库,官网上写的在pycharm中直接pip install pymrmr报错。
2.2在path中配置pycharm报错。
2.3提升pip版本也不行。
2.4看到有说python3.6才能使用该库,安装后还是不能使用。
解决:最后安装了C++ 桌面开发成功解决问题,VisualStudio官网链接:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com)
下载的社区版2022,安装好后找到C++的桌面开发,安装完成后,再次打开pycharm,在终端输入下列代码安装成功。(使用的依旧是刚开始的py3.8版本)
pip install pymrmr
3、mRMR的使用
import pymrmr
result = pymrmr.mRMR(参数一,参数二,参数三)
参数一:DataFrame,要求第一列是目标量(标注),其他列是特征量。
参数二:选择的方法,有'MID'、'MIQ'两种。MID是基于互信息的mRMR,MIQ是基于商的mRMR。
参数三:要求int类型,最后输出的特征数量。
最后输出结果类似这种。。。
4、怎么将结果保存到csv
mRMR的输出结果是特征的名称,存到一个列表中,再切片保存即可。