Code covered by the BSD License  

Highlights from
Feature Selection Based on Interaction Information

5.0

5.0 | 2 ratings Rate this file 39 Downloads (last 30 days) File Size: 23.83 KB File ID: #26981

Feature Selection Based on Interaction Information

by Stefan Schroedl

 

17 Mar 2010

Self-contained package for feature selection based on mutual information/interaction information.

| Watch this File

File Information
Description

This is a self-contained package for running feature selection filters: Given a (usually large) number of noisy and partly redundant variables and a target choose a small but indicative subset as input to a classification or regression technique.
For background information, see e.g: Gavin Brown, 'A New Perspective for Information Theoretic Feature Selection', Artificial Intelligence and Statistics, 2009.

The Matlab function select_features.m includes several previously published methods as special cases, such as FOU, MRMR, MIFS-U, JMI, and CMIM. It allows for higher-order interaction terms, forward and backward search, priors, several redundancy weighting options, and pessimistic estimates.
 
Auxiliary functions for discretization, construction and marginalization of probability tables, conditional entropy, mutual information and interaction information are included and are usable by themselves. See demo_feature_select.m for examples.

MATLAB release MATLAB 7.8 (R2009a)
Other requirements Some options of quantize.m rely on the statistics toolbox.
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (6)
17 Nov 2010 Hopester Hope

Perhaps I'm being dense, but I'm getting errors whenever I use these functions. For example, the script:

X=rand(10,1);XQ=quantize(X,'levels',2);[X XQ]

throws the error:

'??? Undefined function or method 'quantile' for input arguments of type 'double'.

The script comes directly from your help page, so I guess it should work... Any ideas?

19 Nov 2010 Stefan Schroedl

the quantile function is defined in the statistics toolbox, maybe you don't have it installed?

09 Dec 2010 Hopester Hope

I see you're right. I was actually hoping to build something that didn't depend on the statistics toolbox, so I guess this isn't it. Thanks for keeping the code itself quite clear though; it's a good place for me to start to build what I need.

23 Jan 2011 asma

The algorithms are so slow, is there is a way to improve the speed?

i have a feature space of 72 columns and i need to reduce them into 20 or 15.

12 Apr 2011 june

function [varargout] = select_features(features, target, max_iter, varargin)
what target stand for?feature?or class?

30 Aug 2011 Alexander Schäfer

Hey a great script!! But sometimes I get this error:

??? Error using ==> marginal at 37
length of dimension vector incompatible with size of probability table

Error in ==> select_features>update_comb at 491
        p_xy = marginal(p_zxy, ~ofn(1, deg+1), 1); % all variables except target

Error in ==> select_features>update_degree at 457
            use_full = update_comb(var_update, var_sel, var_sgn, [], deg);

Error in ==> select_features at 382
            needs_full = update_degree(i, sel, sgn, flag_sel, d);

Error in ==> predict_club2 at 96
             test=select_features(traindata, trainlabels,feature_nr);

Please login to add a comment or rating.
Tag Activity for this File
Tag Applied By Date/Time
statistics Stefan Schroedl 17 Mar 2010 12:16:11
probability Stefan Schroedl 17 Mar 2010 12:16:11
feature selection Stefan Schroedl 17 Mar 2010 12:16:11
shannon information Stefan Schroedl 17 Mar 2010 12:16:11
mutual information Stefan Schroedl 17 Mar 2010 12:16:11
interaction information Stefan Schroedl 17 Mar 2010 12:16:11
entropy Stefan Schroedl 17 Mar 2010 12:16:11
conditional entropy Stefan Schroedl 17 Mar 2010 12:16:11
joint probability Stefan Schroedl 17 Mar 2010 12:16:11
dimensionalize Stefan Schroedl 17 Mar 2010 12:16:11
quantization Stefan Schroedl 17 Mar 2010 12:16:11
discretization Stefan Schroedl 17 Mar 2010 12:16:11
marginal Stefan Schroedl 17 Mar 2010 12:16:11
marginalization Stefan Schroedl 17 Mar 2010 12:16:11
first order utility Stefan Schroedl 17 Mar 2010 12:16:11
frequency table Stefan Schroedl 17 Mar 2010 12:16:12
entropy Alysson 04 Oct 2011 20:40:16
mutual information Alysson 04 Oct 2011 20:40:24

Contact us at files@mathworks.com