因为要跑深度学习,需要用到mRMR特征选择算法来对生物数据进行特征选择,我就在网上搜mRMR算法的代码。因为我平时用R比较多,所以很想找到这个算法的R代码,终于找到了mRMRe这个R包,但是R的内存不够,不能用R。所以又找到了python的代码。下面将R和python的方法分别放在下面,供大家参考:
1.R
mRMRe包
需要将数据框data转化成mRMR.data的形式才能被使用 需要运行下面这行代码
但是代码报错,因为源码中的特征少于我们需要筛选的特征,因此我们需要进入 mRMRe包的源码,更改一个参数即可。
下面是进入R包的源码更改参数。
首先进入CRAN - Package mRMRe,载他的Package Source。
保存下来,关掉这个源码界面就可以啦。但是这时候,马上运行刚才的那行代码,是不行的。因为如果我们这时再打开源码,发现并没有保存成功。我们只需要下面这和一步骤即可。我们打开R的
Console
运行这几行代码:
然后再来到Rstudio,运行下面两行代码:
这样,上面的error就解决啦。
可以继续运行代码,将数据框转换为 mRMR.data的形式。
前期工作完成后,我们就可以进行特征选择啦:
由于我的电脑内存不够大,上面的代码没有运行出来
报错 :
解决方法:
1清理内存,运行代码gc()
2.查看R的内存,运行代码memory.limit().然后可以分配给R更大的内存,运行代码memory.limit(size:50000)
3.优化代码。(要是用这个方法,还不如直接杀了我。。。)
结果R没能运行出来。我就转战python了。
2.python
pymrmr包
(1)创建虚拟环境pymrmr(任意名字)
(2)激活虚拟环境(activate pymrmr),安装必要的包 (pip install numpy Cython)
(3)在github上的链接:GitHub - fbrundu/pymrmr: Python3 binding to mRMR Feature Selection algorithm (currently not maintained)下载安装包
(4)将安装包的解压文件复制到anaconda安装路径 D:\Anaconda3\envs\pymrmr(根据自己的电脑来)中
(5)打开控制台Anaconda Prompt(Anaconda3),进入D:\Anaconda3\envs\pymrmr目录中安装(运行下述命令)
注意:一定要进入到pymrmr-master中,看看里面有没有set.py这个文件。
(6)运行代码:
pymrmr包安装成功,可以进入python,运行代码import pymrmr将包导入
折腾了三四天,终于完事儿啦。(我在写这博客的时候,正在用python跑这个算法,快一小时了,还没跑出来,有点慢哦~)
这是我第一次写博客,把我这几天与mRMR算法较劲的过程写下来,要是有什么错误的地方,还请大家能指出来~谢谢啦~~