/** * Main method for testing this class. * * @param argv the options */ public static void main(String[] argv) { runClassifier(new IterativeClassifierOptimizer(), argv); } }
if (getUseAverage()) { options.add("-A"); options.add(getIterativeClassifier().getClass().getName()); options.add("" + getLookAheadIterations()); options.add("" + getPoolSize()); options.add("" + getNumThreads()); options.add("" + getStepSize()); options.add("" + getNumFolds()); options.add("-R"); options.add("" + getNumRuns()); options.add("" + getSplitPercentage()); if (getPreserveOrderInPercentageSplitEvaluation()) { options.add("-order"); options.add(getEvaluationMetric().getSelectedTag().getIDStr()); if (getClassValueIndex() >= 0) { options.add("-class-value-index"); options.add("" + getClassValueIndex());
setUseAverage(Utils.getFlag('A', options)); setLookAheadIterations(Integer.parseInt(lookAheadIterations)); } else { setLookAheadIterations(50); setPoolSize(Integer.parseInt(PoolSize)); } else { setPoolSize(1); setNumThreads(Integer.parseInt(NumThreads)); } else { setNumThreads(1); setStepSize(Integer.parseInt(stepSize)); } else { setStepSize(1); setNumFolds(Integer.parseInt(numFolds)); } else { setNumFolds(10); setNumRuns(Integer.parseInt(numRuns)); } else { setNumRuns(1); setSplitPercentage(Double.parseDouble(splitPercentage)); } else { setSplitPercentage(0.0);
newVector.addElement(new Option("\t" + lookAheadIterationsTipText() + "\n" + "\t(default 50)", "L", 1, "-L <num>")); newVector.addElement(new Option( "\t" + poolSizeTipText() + "\n\t(default 1)", "P", 1, "-P <int>")); newVector.addElement(new Option("\t" + numThreadsTipText() + "\n" + "\t(default 1)", "E", 1, "-E <int>")); newVector.addElement(new Option("\t" + stepSizeTipText() + "\n" + "\t(default 1)", "I", 1, "-I <num>")); newVector.addElement(new Option("\tNumber of folds for cross-validation.\n" + "\t(default: " + defaultIterativeClassifierString() + ")", "W", 1, "-W"));
getCapabilities().testWithFail(data); if (getSplitPercentage() != 0) { if ((getSplitPercentage() < 0) || (getSplitPercentage() > 100)) { throw new IllegalArgumentException("Split percentage in IterativeClassifierOptimizer not in [0,100]"); Instances[][] testSets = new Instances[numRuns][numFolds]; final IterativeClassifier[][] classifiers = new IterativeClassifier[numRuns][numFolds]; if (getSplitPercentage() == 0) { for (int j = 0; j < numRuns; j++) { data.randomize(randomInstance); if (!getPreserveOrderInPercentageSplitEvaluation()) { data.randomize(randomInstance); int trainSize = (int) Math.round(data.numInstances() * getSplitPercentage() / 100); int testSize = data.numInstances() - trainSize; trainingSets[0][0] = new Instances(data, 0, trainSize); getClassValueIndex() >= 0 ? helper.getNamedMetric(m_evalMetric, getClassValueIndex()) : helper.getNamedMetric(m_evalMetric); tempThresholds = helper.getNamedMetricThresholds(m_evalMetric); } else { eval.evaluateModel(classifiers[r][i], testSets[r][i]); result += getClassValueIndex() >= 0 ? helper.getNamedMetric(m_evalMetric,
/** Creates a default IterativeClassifierOptimizer */ public Classifier getClassifier() { return new IterativeClassifierOptimizer(); }
/** * Gets the classifier specification string, which contains the class name of * the classifier and any options to the classifier * * @return the classifier string */ protected String getIterativeClassifierSpec() { IterativeClassifier c = getIterativeClassifier(); return c.getClass().getName() + " " + Utils.joinOptions(((OptionHandler) c).getOptions()); }
setUseAverage(Utils.getFlag('A', options)); setLookAheadIterations(Integer.parseInt(lookAheadIterations)); } else { setLookAheadIterations(50); setPoolSize(Integer.parseInt(PoolSize)); } else { setPoolSize(1); setNumThreads(Integer.parseInt(NumThreads)); } else { setNumThreads(1); setStepSize(Integer.parseInt(stepSize)); } else { setStepSize(1); setNumFolds(Integer.parseInt(numFolds)); } else { setNumFolds(10); setNumRuns(Integer.parseInt(numRuns)); } else { setNumRuns(1); setSplitPercentage(Double.parseDouble(splitPercentage)); } else { setSplitPercentage(0.0);
newVector.addElement(new Option("\t" + lookAheadIterationsTipText() + "\n" + "\t(default 50)", "L", 1, "-L <num>")); newVector.addElement(new Option( "\t" + poolSizeTipText() + "\n\t(default 1)", "P", 1, "-P <int>")); newVector.addElement(new Option("\t" + numThreadsTipText() + "\n" + "\t(default 1)", "E", 1, "-E <int>")); newVector.addElement(new Option("\t" + stepSizeTipText() + "\n" + "\t(default 1)", "I", 1, "-I <num>")); newVector.addElement(new Option("\tNumber of folds for cross-validation.\n" + "\t(default: " + defaultIterativeClassifierString() + ")", "W", 1, "-W"));
getCapabilities().testWithFail(data); if (getSplitPercentage() != 0) { if ((getSplitPercentage() < 0) || (getSplitPercentage() > 100)) { throw new IllegalArgumentException("Split percentage in IterativeClassifierOptimizer not in [0,100]"); Instances[][] testSets = new Instances[numRuns][numFolds]; final IterativeClassifier[][] classifiers = new IterativeClassifier[numRuns][numFolds]; if (getSplitPercentage() == 0) { for (int j = 0; j < numRuns; j++) { data.randomize(randomInstance); if (!getPreserveOrderInPercentageSplitEvaluation()) { data.randomize(randomInstance); int trainSize = (int) Math.round(data.numInstances() * getSplitPercentage() / 100); int testSize = data.numInstances() - trainSize; trainingSets[0][0] = new Instances(data, 0, trainSize); getClassValueIndex() >= 0 ? helper.getNamedMetric(m_evalMetric, getClassValueIndex()) : helper.getNamedMetric(m_evalMetric); tempThresholds = helper.getNamedMetricThresholds(m_evalMetric); } else { eval.evaluateModel(classifiers[r][i], testSets[r][i]); result += getClassValueIndex() >= 0 ? helper.getNamedMetric(m_evalMetric,
/** Creates a default IterativeClassifierOptimizer */ public Classifier getClassifier() { return new IterativeClassifierOptimizer(); }
/** * Gets the classifier specification string, which contains the class name of * the classifier and any options to the classifier * * @return the classifier string */ protected String getIterativeClassifierSpec() { IterativeClassifier c = getIterativeClassifier(); return c.getClass().getName() + " " + Utils.joinOptions(((OptionHandler) c).getOptions()); }
if (getUseAverage()) { options.add("-A"); options.add(getIterativeClassifier().getClass().getName()); options.add("" + getLookAheadIterations()); options.add("" + getPoolSize()); options.add("" + getNumThreads()); options.add("" + getStepSize()); options.add("" + getNumFolds()); options.add("-R"); options.add("" + getNumRuns()); options.add("" + getSplitPercentage()); if (getPreserveOrderInPercentageSplitEvaluation()) { options.add("-order"); options.add(getEvaluationMetric().getSelectedTag().getIDStr()); if (getClassValueIndex() >= 0) { options.add("-class-value-index"); options.add("" + getClassValueIndex());
/** * Main method for testing this class. * * @param argv the options */ public static void main(String[] argv) { runClassifier(new IterativeClassifierOptimizer(), argv); } }
/** * Returns default capabilities of the base classifier. * * @return the capabilities of the base classifier */ @Override public Capabilities getCapabilities() { Capabilities result; if (getIterativeClassifier() != null) { result = getIterativeClassifier().getCapabilities(); } else { result = new Capabilities(this); result.disableAll(); } // set dependencies for (Capability cap : Capability.values()) { result.enableDependency(cap); } result.setOwner(this); return result; }
/** * Returns default capabilities of the base classifier. * * @return the capabilities of the base classifier */ @Override public Capabilities getCapabilities() { Capabilities result; if (getIterativeClassifier() != null) { result = getIterativeClassifier().getCapabilities(); } else { result = new Capabilities(this); result.disableAll(); } // set dependencies for (Capability cap : Capability.values()) { result.enableDependency(cap); } result.setOwner(this); return result; }