Github 项目推荐 | 用于 C/C++、Java、Matlab/Octave 的特征选择工具箱

FEAST 是用于 C/C++、Java、Matlab/Octave 的特征选择工具集合,它提供了基于滤波器特征选择算法的常用互信息的实现以及 RELIEF 的实现。所有函数都需要离散输入(RELIEF 除外,它不依赖于 MIToolbox),它们返回选定的特征索引。

Github:https://github.com/Craigacp/FEAST

该项目是为了帮助研究这些算法的相关性而开发的,其结果已经发布在下述的论文中:

Conditional Likelihood Maximisation: A Unifying Framework for Information Theoretic Feature Selection
 G. Brown, A. Pocock, M.-J. Zhao, M. Lujan
 Journal of Machine Learning Research, 13:27-66 (2012)

加权特征选择算法描述如下:

Information Theoretic Feature Selection for Cost-Sensitive Problems
 A. Pocock, N. Edakunni, M.-J. Zhao, M. Lujan, G. Brown.
 ArXiv

如果有开发者或者学者需要 FEAST 中的实现做研究,请引用上述的论文。所有的 FEAST 代码都是根据 BSD 3-Clause 许可证授权的。

包含以下实现:mim,mrmr,mifs,cmim,jmi,disr,cife,icap,condred,cmi,relief,fcbf,betagamma

加权实现:mim,cmim,jmi,disr,cmi

FEAST 适用于离散输入,所以在使用 FEAST 之前,所有连续值应该离散化。作者在实验中发现,用 10 个宽度相同的二进制文件(bins)能够适用很多问题,尽管这个跟数据集的大小有关。当 FEAST 使用连续的数据时,会生成不可靠的结果,运行速度也会变慢,内存使用量也会增加很多。

MATLAB 示例(使用「data」作为我们的特征矩阵,「label」作为类标签向量):

>> size(data)
ans = 
     (569,30)                                     %% denoting 569 examples, and 30 features
>> selectedIndices = feast('jmi',5,data,labels) %% selecting the top 5 features using the jmi algorithm
selectedIndices =

    28
    21
     8
    27
    23
>> selectedIndices = feast('mrmr',10,data,labels) %% selecting the top 10 features using the mrmr algorithm
selectedIndices =

    28
    24
    22
     8
    27
    21
    29
     4
     7
    25
>> selectedIndices = feast('mifs',5,data,labels,0.7) %% selecting the top 5 features using the mifs algorithm with beta = 0.7
selectedIndices =

    28
    24
    22
    20
    29

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2018-02-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏贾志刚-OpenCV学堂

基于积分图的二值图像膨胀算法实现

积分图来源与发展 积分图是Crow在1984年首次提出,是为了在多尺度透视投影中提高渲染速度。随后这种技术被应用到基于NCC的快速匹配、对象检测和SURF变换中...

57680
来自专栏小小挖掘机

DQN三大改进(二)-Prioritised replay

Prioritised replay原文:https://arxiv.org/pdf/1511.05952.pdf 代码地址:https://github.co...

1.6K40
来自专栏编程微刊

人工智能面试题86问,新手找工作必备!

41940
来自专栏目标检测和深度学习

教程 | 如何使用DeepFake实现视频换脸

2K20
来自专栏CDA数据分析师

一篇文章教你如何用R进行数据挖掘

引言 R是一种广泛用于数据分析和统计计算的强大语言,于上世纪90年代开始发展起来。得益于全世界众多 爱好者的无尽努力,大家继而开发出了一种基于R但优于R基本文本...

44350
来自专栏数据结构与算法

Day5网络流

算法 无源汇上下界可行流 ?  先强制流过l的流量 从s到每个正权点连流量为l的流量  从每个负权点向t连-l的流量 如果容量为0,则不连边 有源汇上下界最大流...

32290
来自专栏Pytorch实践

AI,又一领域超过人类水平

语法改错是一个大家比较陌生的领域,大致可以认为对英文进行语法改错。给定一句带有语法错误的话,AI对其进行修正得到正确的语法表示。最近微软亚洲研究...

11710
来自专栏机器之心

教程 | 如何使用DeepFake实现视频换脸

3.2K30
来自专栏AI研习社

从原理到实战 英伟达教你用PyTorch搭建RNN(上)

从 Siri 到谷歌翻译,深度神经网络大步推动了机器对自然语言的理解。 迄今为止,大多数模型把语言看作是字词的平面序列(flat sequence),使用时间递...

467110
来自专栏AI研习社

阿里将 TVM 融入 TensorFlow,在 GPU 上实现全面提速

AI 研习社按,日前,阿里机器翻译团队和 PAI 团队发表博文,阐述将 TVM 引入 TensorFlow,可以带来至少 13 倍的 batch 矩阵相乘(ma...

22920

扫码关注云+社区

领取腾讯云代金券