4.73333
4.7 | 18 ratings Rate this file 134 Downloads (last 30 days) File Size: 523 KB File ID: #14608

mRMR Feature Selection (using mutual information computation)

by

Hanchuan Peng

 

11 Apr 2007 (Updated )

This is a cross-platform version of mimimum-redundancy maximum-relevancy feature selection

| Watch this File

File Information
Description

This package is the mRMR (minimum-redundancy maximum-relevancy) feature selection method in (Peng et al, 2005 and Ding & Peng, 2005, 2003), whose better performance over the conventional top-ranking method has been demonstrated on a number of data sets in recent publications. This version uses mutual information as a proxy for computing relevance and redundancy among variables (features). Other variations such as using correlation or F-test or distances can be easily implemented within this framework, too.

Hanchuan Peng, Fuhui Long, and Chris Ding, "Feature selection based on mutual information: criteria of max-dependency, max-relevance, and min-redundancy,"
IEEE Transactions on Pattern Analysis and Machine Intelligence,
Vol. 27, No. 8, pp.1226-1238, 2005. [PDF]

Ding C., and Peng HC, "Minimum redundancy feature selection from microarray gene expression data," Journal of Bioinformatics and Computational Biology,
Vol. 3, No. 2, pp.185-205, 2005. [PDF]

Ding, C and Peng HC, Proc. 2nd IEEE Computational Systems Bioinformatics Conference (CSB 2003),
pp.523-528, Stanford, CA, Aug, 2003.

MATLAB release MATLAB 7.1.0 (R14SP3)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (36)
14 Oct 2014 DSP

DSP

I have problem while using mRMR in MATLAB 2012b.
if I run mRMR then error:
the error:
Undefined function 'estpab' for input arguments of type 'nominal'.

Error in mutualinfo (line 21)
[p12, p1, p2] = estpab(vec1,vec2);

Error in mrmr_miq_d (line 50)
t(i) = mutualinfo(d(:,i), f);

I have windows-7 64 bit system and MATLAB version 2012b. Please help .

Comment only
25 Sep 2014 ahmed hamed

ahmed hamed

'm using this algorithm for the first time, but unable to run it.
I'm using matlab 12a
load fisheriris
f = mrmr_mid_d(meas, species, 2)
but i got an error:
undefined function 'mrmr_mid_d' for input arguments of type cell
I also tried another data set where the class is a double matrix and got the same error: undefined function 'mrmr_mid_d' for input arguments of type double
please help.

Comment only
05 Dec 2013 Emilie Mussard

Emilie Mussard

Thank you for your code.
I followed last comments of sheng (or at least tried to) but I still have a problem with this estpab function, it is notified as "Undefined function 'estpab' for input arguments of type 'int8'"
When it is called by mutualinfo (line 21).

Am I missing something?

Comment only
06 Nov 2013 sheng

sheng

Great code.
If you have any problem using this code please check http://penglab.janelia.org/proj/mRMR/FAQ_mrmr.htm#Q1.2

for 'estpab.dll' problem please download this mi version http://www.mathworks.com/matlabcentral/fileexchange/14888-mutual-information-computation
replace it with the folder mi_0.9(Mex compile if needed), then copy the three mrmr files to directory /mi/,and run it with you data(integer) ,label and num of features you want to select.

example: fea = mrmr_mid_d(yourdata,labels,5) %select top 5 features

06 Nov 2013 sheng

sheng

 
06 Nov 2013 sheng

sheng

Great code.
If you have any problem using this code please check http://penglab.janelia.org/proj/mRMR/FAQ_mrmr.htm#Q1.2

for 'estpab.dll' please download this mi version http://www.mathworks.com/matlabcentral/fileexchange/14888-mutual-information-computation
replace it with the folder mi_0.9(Mex compile if needed), then copy the three mrmr files run it with you data ,label and num of features you want to select.

26 Oct 2013 zhang

zhang

where to dl?

Comment only
03 Oct 2013 Miles

Miles

what does that mean?

Warning: Calling MEX-file 'F:\Matlab Process\GEO\mutual
information\mRMR_0.9_compiled\mi_0.9\estpab.dll'.
MEX-files with .dll extensions will not execute in a future version
of MATLAB.
Warning: Calling MEX-file 'F:\Matlab Process\GEO\mutual
information\mRMR_0.9_compiled\mi_0.9\estmutualinfo.dll'.
MEX-files with .dll extensions will not execute in a future version
of MATLAB.

Comment only
30 Sep 2013 Akram Nour

Akram Nour

I am trying to run mrmr_mid_d.m and mrmr_miq_d.m but an error shows that the file "estpab.m" is missing !!?? you have not answered any of the questions in the posts answering this question :(

Also what is the difference between mrmr_miq and mrmr_mid ?

Please help where can I find this m file

--
the error:
Undefined function 'estpab' for input arguments of type 'nominal'.

Error in mutualinfo (line 21)
[p12, p1, p2] = estpab(vec1,vec2);

Error in mrmr_miq_d (line 50)
t(i) = mutualinfo(d(:,i), f);
--

Comment only
30 Sep 2013 Akram Nour

Akram Nour

I am trying to run mrmr_mid_d.m and mrmr_miq_d.m but an error shows that the file "estpab.m" is missing !!?? you have not answered any of the questions in the posts answering this question :(

Please help where can I find this m file

--
the error:
Undefined function 'estpab' for input arguments of type 'nominal'.

Error in mutualinfo (line 21)
[p12, p1, p2] = estpab(vec1,vec2);

Error in mrmr_miq_d (line 50)
t(i) = mutualinfo(d(:,i), f);
--

Comment only
05 Jun 2013 nayeff

nayeff

Hi Prof. Peng,
Thank you for the code. I am trying to understand what is the difference between mrmr_miq_d and mrmr_mid_d. Whould you please explain?

Regards,

06 Feb 2013 Yashodhan Athavale

Yashodhan Athavale

I'm using this algorithm for the first time, and unable to relate the articles published and the code written. As indicated in the function [fea] = mrmr_miq_d(d, f, K):

I did the following:
d= 180 x 48 dataset - indicating 180 samples each having 48 features
f = 180 x 1 - class/category of the n samples
K = 24 - number of features to be selected

I ran the code and got the [fea] as output vector of 1 x 24 dimensions. But what does [fea] mean ? What do the numbers in the fea array signify ?

Comment only
08 Jan 2013 Jing Wang

Jing Wang

http://t.cn/zjupBbJ All files and possible problems and answers could be seen in this webpage. Good luck!

Comment only
08 Jan 2013 Jing Wang

Jing Wang

 
28 Apr 2012 Luke

Luke

I have a program using this mRMR implementation. When I moved my code over from a 32 bit machine to a 64 bit machine and recompiled I receive different feature selected outputs for the same inputs!!!

15 Jan 2012 Zeinab

Zeinab

In order to run mrmr_mid_d.m or mrmr_miq_d.m it needs estpab.m file. Please help where can I find this m file.

Comment only
11 Oct 2011 Waljinder Singh

Waljinder Singh

Ok it works now for me. I will tell how it worked. Firstly download and install the compatible compilers (1. Microsoft visual 2.Microsoft Windows SDK - for windows 64 bit) according to your Matlab version. Once it is installed on your machine. Type mex -setup in Matlab. Choose the installed version and confirm by typing y. Now make sure you have all cpp extension and header files. If you don't have them take all from here : http://www.mathworks.com/matlabcentral/fileexchange/14888
Copy all the files which you don't have. Next work is to edit the cpp extension files. Open the files one by one and where you find log() type log(double()) and save. Now go in the directory where you have the m file makeosmex and run it. After this add all the files and folders to the current working directory. Run the mRMR MID/MIQ/BASE files and et voila its done !
If any body has more questions you are free to ask

23 Aug 2011 Chris Hall

Chris Hall

Works great! Both quick and reliable.

24 Jul 2011 Sangtae Ahn

Sangtae Ahn

Where is 'estpab.m' file
I cannot find this file to run.

02 Jul 2010 Daniel Goerke

Daniel Goerke

Hi, I've got the same memory problem:
I downloaded the mRMR package and furthermore downloaded the recent version of the mutual information toolbox from the autor's website, since the old version was not executable.

I got a data matrix <19900x256 double> and a class_vector matrix <19900x1 double> with values eigther 1, 2, 3 or 4.
I want to compute the "best" 50 features out of the 256.

So what I do now is calling test=mrmr_mid_d(data,class_vector,50);
Now it takes a while (at dual core machine E5300 with 2 GB RAM) and the following error occures:
??? Error using ==> estpab
Out of memory. Type HELP MEMORY for your options.

Error in ==> mutualinfo at 21
[p12, p1, p2] = estpab(vec1,vec2);

Error in ==> mrmr_mid_d at 49
t(i) = mutualinfo(d(:,i), f);

for mrmr_miq_d it's exactly the same.

Any ideas?

Best regards,
Daniel

Comment only
18 May 2010 Airballman

Airballman

Hi, I tried to get the enwest version of the toolbox and recompile all c++ files but it keeps saying me 'Out of memory' just like Maha Sulaeman before.

May someone help me on this?

Comment only
30 Apr 2010 Zoheb

Zoheb

Thank you Omid. My paths were ok. The problem has been resolved by recompiling the toolbox (this download doesn't contain the source code). It is now working with my feature set.

Comment only
28 Apr 2010 Omid Aghazadeh

Omid Aghazadeh

for both of the above problems:
you need to have the folder containing estpab in the same folder as mrmr_mi*_d.m . Otherwise, you can use addpath.
The definition of input variables are included in mrmr_mi*_d

Comment only
28 Apr 2010 Zoheb

Zoheb

The inputs are explained on the author's faq here,
http://penglab.janelia.org/proj/mRMR/FAQ_mrmr.htm#s4

"Q4.4 What are the input/parameters of the Matlab version?

A. Three arrays, D, F, and K. D is an m*n array of your candidate features, each row is a sample, and each column is a feature/attribute/variable. F is an m*1 vector, specifying the classification variable (i.e. the class information for each of the m samples). K is the maximal number of features you want to select.

D must be pre-discretized as a categorical array, i.e. containing only integers. F must be categorical, indicating the class information."

Having said that, I'm still struggling myself. The particular error message I'm getting is, "Undefined function or method 'estpab' for input arguments of type 'uint8'."

Could this be due to the data being the wrong type, bad format?

Comment only
12 Mar 2010 Marie

Marie

I have the same question as above: what are d (all datas I think), what are f (features? but if you pu features you put all datas...) and K is the number of features we want to select I supposed.
Another question is that I have "Invalid MEX-file... the application .dll is invalid...". Would you know how to solve that.
Thanks a lot for this software anyway!

Comment only
28 Feb 2010 Omid Aghazadeh

Omid Aghazadeh

Worked like a charm. Great toolbox for feature selection.

01 Sep 2008 Delinda He

There is no comment in the code, would you please help me about what is mrmr_mid_d(d, f, K), d? f? K?
Thanks so much.

Comment only
23 Jun 2008 Maha Sulaeman

Whenever I use the function mrmr_mid_d, the Matlab keeps displaying 'Out of memory'. my dataset is 202x62 & my RAM space is 2G, does the function need more space? and if so,is there any way I can make it work?

Comment only
01 Dec 2007 Andre Pfeuffer

I had problem to get this run under R2007a Matlab. When used the libraries from "Mutual Information computation", same author, it get working. Excellent work!

26 Jul 2007 Henry Lee

cool codes...

30 May 2007 harry Lee  
26 Apr 2007 Bob Simpson  
25 Apr 2007 Sirley K

There is also an online version and another binary executable for different OS at the author's web site: http://research.janelia.org/peng/proj/mRMR/index.htm

25 Apr 2007 ALI EL AKADI  
18 Apr 2007 X Chen

It may need some efforts to understand what are the d and f, which are the data table and class variable. There is another version at author's web site.

18 Apr 2007 X Chen

This is a quite straightforward implementation and just does what it supposes to do. However it would be nicer if some datasets could be included.

Contact us