/** * Train cv. * * @param numFolds the num folds * @param numFold * @param random the random * @return the instances */ public Instances trainCV(int numFolds, int numFold, Random random) { Instances train = trainCV(numFolds, numFold); train.randomize(random); return train; }
Random random = new Random(1); Instances randData = new Instances(chunk); randData.randomize(random); if (randData.classAttribute().isNominal()) { randData.stratify(numFolds);
@Override protected Object doTaskImpl(TaskMonitor monitor, ObjectRepository repository) { InstanceStream stream = (InstanceStream) getPreparedClassOption(this.streamOption); Instances cache = new Instances(stream.getHeader(), 0); monitor.setCurrentActivity("Caching instances...", -1.0); while ((cache.numInstances() < this.maximumCacheSizeOption.getValue()) && stream.hasMoreInstances()) { cache.add(stream.nextInstance().getData()); if (cache.numInstances() % MainTask.INSTANCES_BETWEEN_MONITOR_UPDATES == 0) { if (monitor.taskShouldAbort()) { return null; } long estimatedRemainingInstances = stream.estimatedRemainingInstances(); long maxRemaining = this.maximumCacheSizeOption.getValue() - cache.numInstances(); if ((estimatedRemainingInstances < 0) || (maxRemaining < estimatedRemainingInstances)) { estimatedRemainingInstances = maxRemaining; } monitor.setCurrentActivityFractionComplete(estimatedRemainingInstances < 0 ? -1.0 : (double) cache.numInstances() / (double) (cache.numInstances() + estimatedRemainingInstances)); } } monitor.setCurrentActivity("Shuffling instances...", -1.0); cache.randomize(new Random(this.shuffleRandomSeedOption.getValue())); return new CachedInstancesStream(cache); }