aboutsummaryrefslogtreecommitdiff
path: root/FEAST/FSToolbox/feast.m
diff options
context:
space:
mode:
Diffstat (limited to 'FEAST/FSToolbox/feast.m')
-rw-r--r--FEAST/FSToolbox/feast.m100
1 files changed, 0 insertions, 100 deletions
diff --git a/FEAST/FSToolbox/feast.m b/FEAST/FSToolbox/feast.m
deleted file mode 100644
index 96a685e..0000000
--- a/FEAST/FSToolbox/feast.m
+++ /dev/null
@@ -1,100 +0,0 @@
-function [selectedFeatures] = feast(criteria,numToSelect,data,labels,varargin)
-%function [selectedFeatures] = feast(criteria,numToSelect,data,labels,varargin)
-%
-%Provides access to the feature selection algorithms in FSToolboxMex
-%
-%Expects the features to be columns of the data matrix, and
-%requires that both the features and labels are integers.
-%
-%Algorithms are called as follows
-%
-%[selectedFeatures] = feast('algName',numToSelect,data,labels)
-% where algName is:
-% mim, mrmr, cmim, jmi, disr, cife, icap, condred, cmi, relief
-%
-%[selectedFeatures] = feast('algName',numToSelect,data,labels,beta)
-% where algName is:
-% mifs (defaults to beta = 1.0 if unspecified)
-%
-%[selectedFeatures] = feast('algName',numToSelect,data,labels,beta,gamma)
-% where algName is:
-% betagamma
-%[selectedFeatures] = feast('algName',numToSelect,data,labels,threshold)
-% where algName is:
-% fcbf (note this ignores the numToSelect)
-%
-% The license is in the license.txt provided.
-
-
-%Internal FSToolbox Criteria to number mapping
-%MIFS = 1
-%mRMR = 2
-%CMIM = 3
-%JMI = 4
-%DISR = 5
-%CIFE = 6
-%ICAP = 7
-%CondRed = 8
-%BetaGamma = 9
-%CMI = 10
-%
-
-if ((numToSelect < 1) || (numToSelect > size(data,2)))
- error(['You have requested ' num2str(numToSelect) ' features, which is not possible']);
-end
-
-finiteDataCount = sum(sum(isfinite(data)));
-finiteLabelsCount = sum(sum(isfinite(labels)));
-
-totalData = numel(data);
-totalLabels = numel(labels);
-
-if ((finiteDataCount ~= totalData) || (finiteLabelsCount ~= totalLabels))
- error(['Some elements are NaNs or infinite. Please check your data']);
-end
-
-if (strcmpi(criteria,'mim'))
- selectedFeatures = MIM(numToSelect,data,labels);
-elseif (strcmpi(criteria,'mifs'))
- if (nargin == 4)
- beta = 1;
- else
- beta = varargin{1};
- end
- selectedFeatures = FSToolboxMex(1,numToSelect,data,labels,beta);
-elseif (strcmpi(criteria,'mrmr'))
- selectedFeatures = FSToolboxMex(2,numToSelect,data,labels);
-elseif (strcmpi(criteria,'cmim'))
- selectedFeatures = FSToolboxMex(3,numToSelect,data,labels);
-elseif (strcmpi(criteria,'jmi'))
- selectedFeatures = FSToolboxMex(4,numToSelect,data,labels);
-elseif (strcmpi(criteria,'disr'))
- selectedFeatures = FSToolboxMex(5,numToSelect,data,labels);
-elseif ((strcmpi(criteria,'cife')) || (strcmpi(criteria,'fou')))
- selectedFeatures = FSToolboxMex(6,numToSelect,data,labels);
-elseif (strcmpi(criteria,'icap'))
- selectedFeatures = FSToolboxMex(7,numToSelect,data,labels);
-elseif (strcmpi(criteria,'condred'))
- selectedFeatures = FSToolboxMex(8,numToSelect,data,labels);
-elseif (strcmpi(criteria,'betagamma'))
- if (nargin ~= 6)
- error('BetaGamma criteria expects a beta and a gamma');
- else
- beta = varargin{1};
- gamma = varargin{2};
- end
- selectedFeatures = FSToolboxMex(9,numToSelect,data,labels,beta,gamma);
-elseif (strcmpi(criteria,'cmi'))
- selectedFeatures = FSToolboxMex(10,numToSelect,data,labels);
-elseif (strcmpi(criteria,'fcbf'))
- if (nargin == 4)
- error('Threshold for FCBF not supplied');
- else
- selectedFeatures = FCBF(data,labels,varargin{1});
- end
-elseif (strcmpi(criteria,'relief'))
- [tmp selectedFeatures] = RELIEF(data,labels);
-else
- selectedFeatures = [];
- disp(['Unrecognised criteria ' criteria]);
-end