diff options
Diffstat (limited to 'FEAST/FSToolbox/feast.m')
-rw-r--r-- | FEAST/FSToolbox/feast.m | 100 |
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 |