Skip to main content

Python3 绑定到 mRMR 特征选择算法

项目描述

PymRMR

https://img.shields.io/pypi/v/pymrmr.svg https://img.shields.io/travis/fbrundu/pymrmr.svg 更新

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']

学分

这个包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。

历史

0.1.0 (2017-03-09)

  • PyPI 上的第一个版本。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pymrmr-0.1.11.tar.gz (69.5 kB 查看哈希

已上传 source

内置分布

pymrmr-0.1.11-cp37-cp37m-macosx_10_14_x86_64.whl (105.3 kB 查看哈希

已上传 cp37