MCPcopy Create free account
hub / github.com/EdwardRaff/JSAT / search

Method search

JSAT/src/jsat/datatransform/featureselection/SFS.java:139–171  ·  view source on GitHub ↗
(int minFeatures, int maxFeatures, DataSet dataSet, int folds)

Source from the content-addressed store, hash-verified

137 }
138
139 private void search(int minFeatures, int maxFeatures, DataSet dataSet, int folds)
140 {
141 Random rand = RandomUtil.getRandom();
142 int nF = dataSet.getNumFeatures();
143 int nCat = dataSet.getNumCategoricalVars();
144
145 Set<Integer> available = new IntSet();
146 ListUtils.addRange(available, 0, nF, 1);
147 catSelected = new IntSet(dataSet.getNumCategoricalVars());
148 numSelected = new IntSet(dataSet.getNumNumericalVars());
149
150 Set<Integer> catToRemove = new IntSet(dataSet.getNumCategoricalVars());
151 Set<Integer> numToRemove = new IntSet(dataSet.getNumNumericalVars());
152 ListUtils.addRange(catToRemove, 0, nCat, 1);
153 ListUtils.addRange(numToRemove, 0, nF-nCat, 1);
154
155 double[] bestScore = new double[]{Double.POSITIVE_INFINITY};
156
157 Object learner = regressor;
158 if (dataSet instanceof ClassificationDataSet)
159 learner = classifier;
160
161 while (catSelected.size() + numSelected.size() < maxFeatures)
162 {
163 if (SFSSelectFeature(available, dataSet,
164 catToRemove, numToRemove, catSelected, numSelected,
165 learner, folds, rand, bestScore, minFeatures) < 0)
166 break;
167
168 }
169
170 this.finalTransform = new RemoveAttributeTransform(dataSet, catToRemove, numToRemove);
171 }
172
173 /**
174 *

Callers 2

SFSMethod · 0.95
fitMethod · 0.95

Calls 7

getRandomMethod · 0.95
addRangeMethod · 0.95
SFSSelectFeatureMethod · 0.95
getNumFeaturesMethod · 0.80
getNumCategoricalVarsMethod · 0.80
getNumNumericalVarsMethod · 0.80
sizeMethod · 0.65

Tested by

no test coverage detected