4.73333

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

mRMR Feature Selection (using mutual information computation)

by

 

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

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 .

25 Sep 2014 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.

05 Dec 2013 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?

06 Nov 2013 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  
06 Nov 2013 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

where to dl?

03 Oct 2013 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.

30 Sep 2013 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);
--

30 Sep 2013 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);
--

05 Jun 2013 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

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 ?

08 Jan 2013 Jing Wang

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

08 Jan 2013 Jing Wang  
28 Apr 2012 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

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.

11 Oct 2011 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

Works great! Both quick and reliable.

24 Jul 2011 Sangtae Ahn

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

02 Jul 2010 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

18 May 2010 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?

30 Apr 2010 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.

28 Apr 2010 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

28 Apr 2010 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?

12 Mar 2010 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!

28 Feb 2010 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.

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?

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