diff options
Diffstat (limited to 'FEAST/MIToolbox/demonstration_algorithms/CMIM.m')
-rw-r--r-- | FEAST/MIToolbox/demonstration_algorithms/CMIM.m | 49 |
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; |