Github 项目推荐 | 用于 C/C++、Java、Matlab/Octave 的特征选择工具箱
时间:2022-05-04
本文章向大家介绍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
- 简易的深度学习框架Keras代码解析与应用
- Java并发编程的艺术(六)——线程间的通信
- 轻量级线程池的实现
- python根据BM25实现文本检索
- 稳扎稳打JavaScript(一)——作用域链内存模型
- 稳扎稳打JavaScript(二)——图解对象内存模型
- Swift学习资源
- 稳扎稳打JavaScript(三)——创建对象的几种方式
- 快速教程:使用Cython来扩展Python/NumPy库
- 稳扎稳打JavaScript(四)——闭包
- JavaScript奇淫技巧(一)
- 动态规划法(四)——0/1背包问题
- 动态规划法(三)——最长公共子序列
- Python数据分析模块 | pandas做数据分析(三):统计相关函数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 构建模型的3种方法
- 训练模型的3种方法
- 干货 | 携程APP/Web功能和视觉测试平台-Watcher
- FPGA中的亚稳态
- 蜂鸟E203系列——定时器中断设计
- FPGA信号截位策略
- 数字IC设计经典笔试题之【verilog篇】
- 蜂鸟E203系列——Windows下运行hello world例程
- 蜂鸟E203系列——Windows开发工具
- FPGA奇数分频
- 形式化分析工具:在虚拟操作系统和主机操作系统之间配置共享文件夹
- 「PHP」以nginx、php-cgi为例,把nginx、php-cgi安装为Windows系统服务
- 气象编程 | Bash拍了拍你说:掌握了我,工作效率起码提高5倍
- 优雅的使用Go进行单元测试
- 雷达LFM信号分析