4.57143

4.6 | 7 ratings Rate this file 98 Downloads (last 30 days) File Size: 3.06 KB File ID: #14916

minimum-redundancy maximum-relevance feature selection

by

 

08 May 2007 (Updated )

The source codes of minimum redundancy feature selection

| Watch this File

File Information
Description

Two source code files of 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.

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.

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

** Note that you need to download the mutual information computing toolbox of the same author. ***

MATLAB release MATLAB 6.0 (R12)
Other requirements The mutual information computing toolbox in the same category, by the same author Hanchuan Peng.
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (14)
04 Jul 2014 Yu  
29 May 2014 dominix

Hello
can anyone give me example on simple dataset and using mRMR to select features mathematically,to understand this code?

14 Feb 2014 Guillaume Lemaitre

Hi Pranav,

You will need to recompile the Mutual Information toolbox for your system. Use the makeosmex.m file to do so.

Best,

21 Jan 2014 Pranav

Can someone please help or point me to right direction?

20 Jan 2014 Pranav

How to fix following error?

Undefined function 'estpab' for input arguments of type 'uint8'.

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

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

14 Sep 2013 Dr. Rami Khushaba

Hello

For those having problems with compiling the MI toolbox in Matlab, you can now use the Fuzzy Mutual information toolbox available at: http://www.mathworks.com/matlabcentral/fileexchange/31888-fuzzy-entropy-and-mutual-information

You will have to play with the fuzzification parameter m if you didn't like the performance much. You will also have to modify the original function by Hanchuan Peng into the following:

==================================

function [fea] = mrmr_mid_d(d, f, K,I_Cx,I_xx)
% MID scheme according to MRMR
% Original By Hanchuan Peng
% April 16, 2003
% Modification By Rami Khushaba
% 13/09/2013

bdisp=0;
nd = size(d,2);
nc = size(d,1);
t1=cputime;
t = I_Cx;
[tmp, idxs] = sort(t,'descend');
fea_base = idxs(1:K);
fea(1) = idxs(1);
KMAX = min(1000,nd); %500
idxleft = idxs(2:KMAX);
k=1;
if bdisp==1,
fprintf('k=1 cost_time=(N/A) cur_fea=%d #left_cand=%d\n', ...
fea(k), length(idxleft));
end;

for k=2:K,
t1=cputime;
ncand = length(idxleft);
curlastfea = length(fea);
for i=1:ncand,
t_mi(i) = I_Cx(idxleft(i));
mi_array(idxleft(i),curlastfea) = I_xx(fea(curlastfea), idxleft(i));
c_mi(i) = mean(mi_array(idxleft(i), :));
end;
[tmp, fea(k)] = max(t_mi(1:ncand) - c_mi(1:ncand));
tmpidx = fea(k); fea(k) = idxleft(tmpidx); idxleft(tmpidx) = [];
if bdisp==1,
fprintf('k=%d cost_time=%5.4f cur_fea=%d #left_cand=%d\n', ...
k, cputime-t1, fea(k), length(idxleft));
end;
end;
return;

Post any question related to fuzzy MI and I will try to reply as soon as possible.

Thanks
Rami

30 Apr 2013 Tripti Malviya

Please tell me how to use it.
I have the term-document matrix(i used tmg tool box to generate it) of type double and i m unable to pass it as the first parameter to the function in mrmr_mid_d.m .
I have to apply this on a text data set.
Please help!!

08 Jan 2013 Jing Wang

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

30 Oct 2012 Fatemeh Saki  
23 Sep 2010 György Kovács

I have downloaded the mutual information toolbox too, but when I try to call either mrmr_mid_d or mrmr_miq_d, matlab gives me the following error message:
"??? Undefined command/function 'mutualinfo'."
What can be the cause?
Any help appreciated. Thanks in advance.

20 Jan 2008 eta eta

i need it

04 Oct 2007 Senoussi Hafida

Thank's for the source but I've not find the function mutualinfo in matlab R12 thus I can not run the algorithm. please can you help me.

27 May 2007 Tom Kallios

nice work and the detected features are good. Should be better if the mutual info tools were put together ...

10 May 2007 Kim Duncan  

Contact us