Python3 绑定到 mRMR 特征选择算法
项目描述
PymRMR
Python3 绑定到 mRMR 特征选择算法 [1]
原作者:彭汉川(http://home.penglab.com/proj/mRMR/)
[1]:Hanchuan Peng、Fuhui Long 和 Chris Ding,“基于互信息的特征选择:max-dependency、max-relevance 和 min-redundancy 的标准”,IEEE Transactions on Pattern Analysis and Machine Intelligence,Vol. 27,第 8 期,第 1226-1238 页,2005 年。
CPP 代码以原始许可证为准(从http://home.penglab.com/proj/mRMR/FAQ_mrmr.htm检索):
mRMR 软件包可下载使用,需满足以下条件: 软件及源代码 Copyright (C) 2000-2007 Written by Hanchuan Peng。这些软件包在以下条件下具有版权: 在出现上述版权声明和本许可声明的情况下,特此免费授予所有学术和非营利机构使用、复制和修改软件及其文档的许可在软件和相关文档的所有副本以及我们的出版物(TPAMI05、JBCB05、CSB03 等)中均适当引用。在上述条件下,明确授予在非营利基础上分发软件或其修改或扩展版本的许可。但是,公司或其他营利性组织使用本软件的权利,或与营利性活动一起进行,并且未经版权所有者事先安排和书面同意,不得授予分发软件或其修改或扩展版本以营利的权利。出于这些目的,未经版权所有者事先同意,下载源代码构成营利组织“使用”和下载该源代码和/或分发给营利机构的行为。使用此源代码即表示同意不以任何方式批评作者的代码编写风格,包括有关文档和评论范围的任何声明。该软件按“原样”提供,不提供任何形式的明示、暗示或其他形式的保证,包括但不限于,任何适销性或适用于特定目的的保证。在任何情况下,作者均不对任何类型的特殊、偶然、间接或后果性损害,或因使用、数据或利润损失而导致的任何损害负责,无论是否被告知损害的可能性,以及基于任何理论因使用或执行这些软件包而产生或与之相关的责任。
Python 包装器受 MIT 许可证的约束。
安装
pip install numpy Cython
pip install -U pymrmr
这个包需要用gcc和g++编译。在 macOS 上,您可能需要在安装之前设置适当的环境变量。例如,如果您通过 HomeBrew 安装 gcc-10,您可能会使用以下内容:
CC=gcc-10 CXX=g++-10 pip install -U pymrmr
用法
pymRMR 提供单一入口点方法pymrmr.mRMR()
。
如原始论文 [1] 中所定义,应提供已离散化的数据。此版本的算法不提供离散化,与原始 C 代码不同。
此方法需要 3 个输入参数:
第一个参数是包含输入数据集的 pandas DataFrame ( http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html ),按照原始论文中的定义进行离散化(参见http: //home.penglab.com/proj/mRMR/)。数据集的行是不同的样本。第一列是每个样本的分类(目标)变量。其余列是算法可能选择的不同变量(特征)。(请参阅http://home.penglab.com/proj/mRMR/上的“样本数据集”下载样本数据集以测试该算法)。重要提示:列名(特征名)应该是字符串类型;
第二个参数是一个字符串,它定义了要使用的内部特征选择方法(在原始论文中定义):可能的值是“MIQ”或“MID”;
第三个参数是一个整数,它定义了算法应该选择的特征数量。
返回值是一个包含所选要素名称的列表。
下面是一个执行示例:
In [1]: import pandas as pd
In [2]: import pymrmr
In [3]: df = pd.read_csv('test_colon_s3.csv')
In [4]: pymrmr.mRMR(df, 'MIQ', 10)
*** This program and the respective minimum Redundancy Maximum Relevance (mRMR)
algorithm were developed by Hanchuan Peng <hanchuan.peng@gmail.com>for
the paper
"Feature selection based on mutual information: criteria of
max-dependency, max-relevance, and min-redundancy,"
Hanchuan Peng, Fuhui Long, and Chris Ding,
IEEE Transactions on Pattern Analysis and Machine Intelligence,
Vol. 27, No. 8, pp.1226-1238, 2005.
*** MaxRel features ***
Order Fea Name Score
1 765 v765 0.375
2 1423 v1423 0.337
3 513 v513 0.321
4 249 v249 0.309
5 267 v267 0.304
6 245 v245 0.304
7 1582 v1582 0.280
8 897 v897 0.269
9 1771 v1771 0.269
10 1772 v1772 0.269
*** mRMR features ***
Order Fea Name Score
1 765 v765 0.375
2 1123 v1123 24.913
3 1772 v1772 3.984
4 286 v286 2.280
5 467 v467 1.979
6 377 v377 1.768
7 513 v513 1.803
8 1325 v1325 1.634
9 1972 v1972 1.741
10 1412 v1412 1.689
Out[4]:
['v765',
'v1123',
'v1772',
'v286',
'v467',
'v377',
'v513',
'v1325',
'v1972',
'v1412']
学分
这个包是用Cookiecutter和audreyr/cookiecutter-pypackage项目模板创建的。
历史
0.1.0 (2017-03-09)
PyPI 上的第一个版本。
项目详情
pymrmr -0.1.11-cp37-cp37m-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8dee49ce5d22ce8c1a5c220cce318b6d9645e62fced6781d4c97f071920809f0 |
|
MD5 | 616a9e1a014e36ba8d94e72db8d39758 |
|
布莱克2-256 | 82e52a7cde278d9d691c13f2632bbe53125812ea6b10c74a6db5da57215d335c |