aboutsummaryrefslogtreecommitdiff
path: root/FEAST/MIToolbox/demonstration_algorithms/CMIM.m
diff options
context:
space:
mode:
Diffstat (limited to 'FEAST/MIToolbox/demonstration_algorithms/CMIM.m')
-rw-r--r--FEAST/MIToolbox/demonstration_algorithms/CMIM.m49
1 files changed, 0 insertions, 49 deletions
diff --git a/FEAST/MIToolbox/demonstration_algorithms/CMIM.m b/FEAST/MIToolbox/demonstration_algorithms/CMIM.m
deleted file mode 100644
index 8ae1f7c..0000000
--- a/FEAST/MIToolbox/demonstration_algorithms/CMIM.m
+++ /dev/null
@@ -1,49 +0,0 @@
-function selectedFeatures = CMIM(k, featureMatrix, classColumn)
-%function selectedFeatures = CMIM(k, featureMatrix, classColumn)
-%Computes conditional mutual information maximisation algorithm from
-%"Fast Binary Feature Selection with Conditional Mutual Information"
-%by F. Fleuret (2004)
-
-%Computes the top k features from
-%a dataset featureMatrix with n training examples and m features
-%with the classes held in classColumn.
-
-noOfTraining = size(classColumn,1);
-noOfFeatures = size(featureMatrix,2);
-
-partialScore = zeros(noOfFeatures,1);
-m = zeros(noOfFeatures,1);
-score = 0;
-answerFeatures = zeros(k,1);
-highestMI = 0;
-highestMICounter = 0;
-
-for n = 1 : noOfFeatures
- partialScore(n) = mi(featureMatrix(:,n),classColumn);
- if partialScore(n) > highestMI
- highestMI = partialScore(n);
- highestMICounter = n;
- end
-end
-
-answerFeatures(1) = highestMICounter;
-
-for i = 2 : k
- score = 0;
- limitI = i - 1;
- for n = 1 : noOfFeatures
- while ((partialScore(n) >= score) && (m(n) < limitI))
- m(n) = m(n) + 1;
- conditionalInfo = cmi(featureMatrix(:,n),classColumn,featureMatrix(:,answerFeatures(m(n))));
- if partialScore(n) > conditionalInfo
- partialScore(n) = conditionalInfo;
- end
- end
- if partialScore(n) >= score
- score = partialScore(n);
- answerFeatures(i) = n;
- end
- end
-end
-
-selectedFeatures = answerFeatures;