aboutsummaryrefslogtreecommitdiff
path: root/FEAST/MIToolbox/demonstration_algorithms/mRMR_D.m
diff options
context:
space:
mode:
authorCalvin Morrison <mutantturkey@gmail.com>2014-03-18 15:59:19 -0400
committerCalvin Morrison <mutantturkey@gmail.com>2014-03-18 15:59:19 -0400
commit97e1498130a72f0a081b42759fa386a7460bb75d (patch)
treebe897b69304081377ce39ce019a652eb73d5a9c1 /FEAST/MIToolbox/demonstration_algorithms/mRMR_D.m
parent49162177c5da0404d41f91f5f41006f0456babcd (diff)
remove FEAST from our source, as our changes went upstream
Diffstat (limited to 'FEAST/MIToolbox/demonstration_algorithms/mRMR_D.m')
-rw-r--r--FEAST/MIToolbox/demonstration_algorithms/mRMR_D.m69
1 files changed, 0 insertions, 69 deletions
diff --git a/FEAST/MIToolbox/demonstration_algorithms/mRMR_D.m b/FEAST/MIToolbox/demonstration_algorithms/mRMR_D.m
deleted file mode 100644
index 50b14bc..0000000
--- a/FEAST/MIToolbox/demonstration_algorithms/mRMR_D.m
+++ /dev/null
@@ -1,69 +0,0 @@
-function selectedFeatures = mRMR_D(k, featureMatrix, classColumn)
-%function selectedFeatures = mRMR_D(k, featureMatrix, classColumn)
-%
-%Selects optimal features according to the mRMR-D algorithm from
-%"Feature Selection Based on Mutual Information: Criteria of Max-Dependency, Max-Relevance, and Min-Redundancy"
-%by H. Peng et al. (2005)
-%
-%Calculates the top k features
-%a dataset featureMatrix with n training examples and m features
-%with the classes held in classColumn (an n x 1 vector)
-
-noOfTraining = size(classColumn,1);
-noOfFeatures = size(featureMatrix,2);
-unselectedFeatures = ones(noOfFeatures,1);
-
-classMI = zeros(noOfFeatures,1);
-answerFeatures = zeros(k,1);
-highestMI = 0;
-highestMICounter = 0;
-currentHighestFeature = 0;
-
-featureMIMatrix = -(ones(k,noOfFeatures));
-
-%setup the mi against the class
-for n = 1 : noOfFeatures
- classMI(n) = mi(featureMatrix(:,n),classColumn);
- if classMI(n) > highestMI
- highestMI = classMI(n);
- highestMICounter = n;
- end
-end
-
-answerFeatures(1) = highestMICounter;
-unselectedFeatures(highestMICounter) = 0;
-
-%iterate over the number of features to select
-for i = 2:k
- score = -100;
- currentHighestFeature = 0;
- iMinus = i-1;
- for j = 1 : noOfFeatures
- if unselectedFeatures(j) == 1
- currentMIScore = 0;
- for m = 1 : iMinus
- if featureMIMatrix(m,j) == -1
- featureMIMatrix(m,j) = mi(featureMatrix(:,j),featureMatrix(:,answerFeatures(m)));
- end
- currentMIScore = currentMIScore + featureMIMatrix(m,j);
- end
- currentScore = classMI(j) - (currentMIScore/iMinus);
-
- if (currentScore > score)
- score = currentScore;
- currentHighestFeature = j;
- end
- end
- end
-
- if score < 0
- disp(['at selection ' int2str(j) ' mRMRD is negative with value ' num2str(score)]);
- end
-
- %now highest feature is selected in currentHighestFeature
- %store it
- unselectedFeatures(currentHighestFeature) = 0;
- answerFeatures(i) = currentHighestFeature;
-end
-
-selectedFeatures = answerFeatures;