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++ 桌面开发成功解决问题。visual studio 官网链接:https://visualstudio.microsoft.com/zh-hans/,下载的社区版2022,安装好后找到C++的桌面开发,等安装好后,重新打开pycharm,在终端输入pip install pymrmr安装成功。(我用的还是一开始的python3.8)

3、mRMR的使用

  import pymrmr

  result = pymrmr.mRMR(参数一,参数二,参数三)

  参数一:DataFrame,要求第一列是目标量(标注),其他列是特征量。

  参数二:选择的方法,有'MID'、'MIQ'两种。MID是基于互信息的mRMR,MIQ是基于商的mRMR。

  参数三:要求int类型,最后输出的特征数量。

   最后输出结果类似这种。。。

4、怎么将结果保存到csv

  mRMR的输出结果是特征的名称,存到一个列表中,再切片保存即可。