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

Method train

JSAT/src/jsat/classifiers/boosting/Stacking.java:323–373  ·  view source on GitHub ↗
(RegressionDataSet dataSet, ExecutorService threadPool)

Source from the content-addressed store, hash-verified

321 }
322
323 @Override
324 public void train(RegressionDataSet dataSet, ExecutorService threadPool)
325 {
326 final int models = baseRegressors.size();
327 weightsPerModel = 1;
328 RegressionDataSet metaSet = new RegressionDataSet(models, new CategoricalData[0]);
329
330 List<RegressionDataSet> dataFolds = dataSet.cvSet(folds);
331 //iterate in the order of the folds so we get the right dataum weights
332 for(RegressionDataSet rds : dataFolds)
333 for(int i = 0; i < rds.getSampleSize(); i++)
334 metaSet.addDataPoint(new DataPoint(new DenseVector(weightsPerModel*models), rds.getDataPoint(i).getWeight()), rds.getTargetValue(i));
335
336 //create the meta training set
337 for(int c = 0; c < baseRegressors.size(); c++)
338 {
339 Regressor reg = baseRegressors.get(c);
340 int pos = 0;
341 for(int f = 0; f < dataFolds.size(); f++)
342 {
343 RegressionDataSet train = RegressionDataSet.comineAllBut(dataFolds, f);
344 RegressionDataSet test = dataFolds.get(f);
345 if(threadPool == null)
346 reg.train(train);
347 else
348 reg.train(train, threadPool);
349 for(int i = 0; i < test.getSampleSize(); i++)//evaluate and mark each point in the held out fold.
350 {
351 double pred = reg.regress(test.getDataPoint(i));
352
353 metaSet.getDataPoint(pos++).getNumericalValues().set(c, pred);
354 }
355 }
356 }
357
358 //train the meta model
359 if(threadPool == null)
360 aggregatingRegressor.train(metaSet);
361 else
362 aggregatingRegressor.train(metaSet, threadPool);
363
364 //train the final classifiers, unless folds=1. In that case they are already trained
365 if(folds != 1)
366 {
367 for(Regressor reg : baseRegressors)
368 if(threadPool == null)
369 reg.train(dataSet);
370 else
371 reg.train(dataSet, threadPool);
372 }
373 }
374
375 @Override
376 public void train(RegressionDataSet dataSet)

Callers 2

testRegressionMethod · 0.95
testRegressionMTMethod · 0.95

Calls 15

addDataPointMethod · 0.95
comineAllButMethod · 0.95
trainMethod · 0.95
getSampleSizeMethod · 0.95
regressMethod · 0.95
getDataPointMethod · 0.95
cvSetMethod · 0.80
getTargetValueMethod · 0.80
getNumericalValuesMethod · 0.80
sizeMethod · 0.65
getSampleSizeMethod · 0.45
getWeightMethod · 0.45

Tested by 2

testRegressionMethod · 0.76
testRegressionMTMethod · 0.76