FEAST

授权协议 BSD-3-Clause License
开发语言
所属分类 应用工具、 科研计算工具
软件类型 开源软件
地区 不详
投 递 者 璩俊雅
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

FEAST

A FEAture Selection Toolbox for C/C++ & MATLAB/OCTAVE, v2.0.0.

FEAST provides implementations of common mutual information based filterfeature selection algorithms, and an implementation of RELIEF. All functionsexpect discrete inputs (except RELIEF, which does not depend on the MIToolbox),and they return the selected feature indices. These implementations weredeveloped to help our research into the similarities between these algorithms,and our results are presented in the following paper:

 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)

The weighted feature selection algorithms are described in Chapter 7 of:

 Feature Selection via Joint Likelihood
 A. Pocock
 PhD Thesis, University of Manchester, 2012

If you use these implementations for academic research please cite the relevant paperabove. All FEAST code is licensed under the BSD 3-Clause License.

Contains implementations of:mim, mrmr, mifs, cmim, jmi, disr, cife, icap, condred, cmi, relief, fcbf, betagamma

And weighted implementations of:mim, cmim, jmi, disr, cmi

References for these algorithms are provided in the accompanying feast.bib file(in BibTeX format).

FEAST works on discrete inputs, and all continuous values must bediscretised before use with FEAST. In our experiments we've found that using10 equal width bins is suitable for many problems, though this is data set sizedependent. FEAST produces unreliable results when used with continuous inputs,runs slowly and uses much more memory than usual. The discrete inputs shouldhave small cardinality, FEAST will treat values {1,10,100} the same way ittreats {1,2,3} and the latter will be both faster and use less memory.

MATLAB Example (using "data" as our feature matrix, and "labels" as the class label vector):

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

The library is written in ANSI C for compatibility with the MATLAB mexcompiler, except for MIM, FCBF and RELIEF, which are written in MATLAB/OCTAVEscript. There is a different implementation of MIM available for use in the Clibrary.

MIToolbox v3.0.0 is required to compile these algorithms, and theseimplementations supercede the example implementations given in that package(they have more robust behaviour when used with unexpected inputs).

MIToolbox can be found at: http://www.github.com/Craigacp/MIToolbox/

The C library expects all matrices in column-major format (i.e. Fortran style).This is for two reasons, a) MATLAB generates Fortran-style arrays, and b)feature selection iterates over columns rather than rows, unlike most other MLprocesses.

Compilation instructions:

  • MATLAB/OCTAVE
    • run CompileFEAST.m in the matlab folder.
  • Linux C shared library
    • run make x86 or make x64 for a 32-bit or 64-bit library.
  • Windows C dll (expects pre built libMIToolbox.dll)
  • Java (requires Java 8)
    • run make x64, sudo make install to build and install the C library.
    • then make java to build the JNI wrapper.
    • then run mvn package in the java directory to build the jar file.
    • Note: the Java code should work on all platforms and future versions of Java, but the included Makefile only works on Ubuntu & Java 8.

Update History

  • 07/01/2017 - v2.0.0 - Added weighted feature selection, major refactoring of the code to improve speed and portability. FEAST functions now return the internal scores assigned by each criteria as well. Added a Java API via JNI. FEAST v2 is approximately 30% faster when called from Matlab.
  • 12/03/2016 - v1.1.4 - Fixed an issue where Matlab would segfault if all features had zero MI with the label.
  • 12/10/2014 - v1.1.2 - Updated documentation to note that FEAST expects column-major matrices.
  • 11/06/2014 - v1.1.1 - Fixed an issue where MIM wasn't compiled into libFSToolbox.
  • 22/02/2014 - v1.1.0 - Bug fixes in memory allocation, added a C implementation of MIM, moved the selected feature increment into the mex code.
  • 12/02/2013 - v1.0.1 - Bug fix for 32-bit Windows MATLAB's lcc.
  • 08/11/2011 - v1.0.0 - Public Release to complement the JMLR publication.
  • 传送门 3000ms 256000K Last feast the young princess received way too many coins. Since she is very young, she doesn’t know thevalue of each coin, if you give her a coin with the value 5 or a coin with th

  • 1. This was the great reunion, and everybody gorged themselves silly, and appetite came into its own; the long-awaited meal became a feast to remember and an almost sacred celebration of life. 这是一次盛大的

  • 非常简单的一个水题。 对于橙子和柠檬所能构成的饱和度的所有情况,可以用ax+by表示。看似要进行复杂度为O(n^2)的枚举,实际上,我们以先枚举x,再枚举y,将其复杂度降至O(n)。 #include<iostream> using namespace std; bool f[5000100]={1};//判断饱食度i是否可以达到 int a,b,t; int main(){ cin>>t

  • 因为以下原因,您没有权限编辑本页: 您所请求的操作仅限于该用户组的用户使用:少女 您可以查看与复制此页面的源代码。{{同人专辑头部}} == 专辑信息 == {{同人专辑信息| | 封面 = png | 封面角色 = | 名称 = FEast | 制作方 = DarkBug | 编号 = Z202001 | 风格类型 = | 类型 = 全长 | 官网页面 = http://music.163.co

  • 牛客 24086 Haybale Feast 题目链接 题目描述 Farmer John is preparing a delicious meal for his cows! In his barn, he has N haybales ( 1 ≤ N ≤ 100 , 000 ) (1≤N≤100,000) (1≤N≤100,000). The iith haybale has a certai

  • Instructions: All of the animals are having a feast! Each animal is bringing one dish. There is just one rule: the dish must start and end with the same letters as the animal's name. For example, the

  • 知识点:尺取法,单调队列 难度:5 这个题的难度感觉高了,给个4应该比较合理,这种题看上去有很多做法,各种数据结构好像都行,我用的是我一眼看上去的方法,首先的想法就是尺取,对第一个区间进行尺取,但是我们还要维护和第一个序列相同的区间的第二个序列的最值,一开始想着用st表,但是我不会,看了看题解,发现可以使用单调队列 做了这个题对单调队列的理解又深了一点,单调队列不只是能解决之前固定滑动窗口最值的问

  • 题目来源:牛客 题目大意: N(N< 1 0 5 10^5 105)种饲料,每种饲料有flavor和spiciness两个参数(各自用一个 1 0 9 10^9 109内的整数表示) N种饲料编号1~N,从中选出连续的一组饲料(比如[3,7]号饲料),这组饲料总的spiciness值为该组内各个饲料spiciness值的最大值,总的flavor值为该组内各个饲料flavor值的和 现求从N种饲料中

  • On this important feast day, people might eat food in the shape of skulls and cakes with “bones on them. On this important feast day, people might eat food in the shape of skulls and cakes “bones on t

  • Chocolate Feast 题目链接 #!/bin/python3 # Chocolate Feast import math import os import random import re import sys # Complete the chocolateFeast function below. def chocolateFeast(n, c, m): bars = i

  • In the evening of the day, they have a feast. Those days when I can chat joyfully with people who I love inside a cosy restaurant with mouthwatering feast in front of us are long gone. : The folk sayi

  • Employees of JebTrains are on their way to celebrate the 256-th day of the year! There are n employees and k teams in JebTrains. Each employee is a member of some (exactly one) team. All teams are num

  • Orz w_yqts 在某王姓dalao的指导下暂时卡到rank1……Orz 二分答案 #include <cstdio> #define ll long long #define N 100001 inline int read() { char ch=getchar(); int x=0; while ('0'>ch || ch>'9') ch=getchar();

  • Employees of JebTrains are on their way to celebrate the 256-th day of the year! There are n employees and k teams in JebTrains. Each employee is a member of some (exactly one) team. All teams are num

相关阅读

相关文章

相关问答

相关文档