All Projects → Craigacp → FEAST

Craigacp / FEAST

Licence: BSD-3-Clause license
A FEAture Selection Toolbox for C/C+, Java, and Matlab/Octave.

Programming Languages

c
50402 projects - #5 most used programming language
java
68154 projects - #9 most used programming language
C++
36643 projects - #6 most used programming language
matlab
3953 projects
Makefile
30231 projects
TeX
3793 projects

Projects that are alternatives of or similar to FEAST

FIFA-2019-Analysis
This is a project based on the FIFA World Cup 2019 and Analyzes the Performance and Efficiency of Teams, Players, Countries and other related things using Data Analysis and Data Visualizations
Stars: ✭ 28 (-58.21%)
Mutual labels:  feature-selection
mrmr
mRMR (minimum-Redundancy-Maximum-Relevance) for automatic feature selection at scale.
Stars: ✭ 170 (+153.73%)
Mutual labels:  feature-selection
Stock-Selection-a-Framework
This project demonstrates how to apply machine learning algorithms to distinguish "good" stocks from the "bad" stocks.
Stars: ✭ 239 (+256.72%)
Mutual labels:  feature-selection
bess
Best Subset Selection algorithm for Regression, Classification, Count, Survival analysis
Stars: ✭ 14 (-79.1%)
Mutual labels:  feature-selection
L0Learn
Efficient Algorithms for L0 Regularized Learning
Stars: ✭ 74 (+10.45%)
Mutual labels:  feature-selection
NVTabular
NVTabular is a feature engineering and preprocessing library for tabular data designed to quickly and easily manipulate terabyte scale datasets used to train deep learning based recommender systems.
Stars: ✭ 797 (+1089.55%)
Mutual labels:  feature-selection
Mlr
Machine Learning in R
Stars: ✭ 1,542 (+2201.49%)
Mutual labels:  feature-selection
py ml utils
Python utilities for Machine Learning competitions
Stars: ✭ 29 (-56.72%)
Mutual labels:  feature-selection
msda
Library for multi-dimensional, multi-sensor, uni/multivariate time series data analysis, unsupervised feature selection, unsupervised deep anomaly detection, and prototype of explainable AI for anomaly detector
Stars: ✭ 80 (+19.4%)
Mutual labels:  feature-selection
TextFeatureSelection
Python library for feature selection for text features. It has filter method, genetic algorithm and TextFeatureSelectionEnsemble for improving text classification models. Helps improve your machine learning models
Stars: ✭ 42 (-37.31%)
Mutual labels:  feature-selection
skrobot
skrobot is a Python module for designing, running and tracking Machine Learning experiments / tasks. It is built on top of scikit-learn framework.
Stars: ✭ 22 (-67.16%)
Mutual labels:  feature-selection
Ball
Statistical Inference and Sure Independence Screening via Ball Statistics
Stars: ✭ 22 (-67.16%)
Mutual labels:  feature-selection
2019-feature-selection
Research project
Stars: ✭ 26 (-61.19%)
Mutual labels:  feature-selection
Reinforcement-Learning-Feature-Selection
Feature selection for maximizing expected cumulative reward
Stars: ✭ 27 (-59.7%)
Mutual labels:  feature-selection
50-days-of-Statistics-for-Data-Science
This repository consist of a 50-day program. All the statistics required for the complete understanding of data science will be uploaded in this repository.
Stars: ✭ 19 (-71.64%)
Mutual labels:  feature-selection
fsfc
Feature Selection for Clustering
Stars: ✭ 80 (+19.4%)
Mutual labels:  feature-selection
exemplary-ml-pipeline
Exemplary, annotated machine learning pipeline for any tabular data problem.
Stars: ✭ 23 (-65.67%)
Mutual labels:  feature-selection
laravel-rollout
A package to integrate rollout into your Laravel project.
Stars: ✭ 23 (-65.67%)
Mutual labels:  feature-selection
pyHSICLasso
Versatile Nonlinear Feature Selection Algorithm for High-dimensional Data
Stars: ✭ 125 (+86.57%)
Mutual labels:  feature-selection
dominance-analysis
This package can be used for dominance analysis or Shapley Value Regression for finding relative importance of predictors on given dataset. This library can be used for key driver analysis or marginal resource allocation models.
Stars: ✭ 111 (+65.67%)
Mutual labels:  feature-selection

FEAST

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

FEAST provides implementations of common mutual information based filter feature selection algorithms, and an implementation of RELIEF. All functions expect discrete inputs (except RELIEF, which does not depend on the MIToolbox), and they return the selected feature indices. These implementations were developed 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 paper above. 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 be discretised before use with FEAST. In our experiments we've found that using 10 equal width bins is suitable for many problems, though this is data set size dependent. FEAST produces unreliable results when used with continuous inputs, runs slowly and uses much more memory than usual. The discrete inputs should have small cardinality, FEAST will treat values {1,10,100} the same way it treats {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 mex compiler, except for MIM, FCBF and RELIEF, which are written in MATLAB/OCTAVE script. There is a different implementation of MIM available for use in the C library.

MIToolbox v3.0.0 is required to compile these algorithms, and these implementations 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 ML processes.

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].