CrossFoldLearner state = best.getPayload().getLearner(); averageCorrect = state.percentCorrect(); averageLL = state.logLikelihood(); if (learningAlgorithm.getBest() != null) { ModelSerializer.writeBinary("/tmp/news-group-" + k + ".model", learningAlgorithm.getBest().getPayload().getLearner().getModels().get(0)); learningAlgorithm.getBest().getPayload().getLearner().getModels().get(0));
private static void dissect(Dictionary newsGroups, AdaptiveLogisticRegression learningAlgorithm, Iterable<File> files) throws IOException { CrossFoldLearner model = learningAlgorithm.getBest().getPayload().getLearner(); model.close(); Map<String, Set<Integer>> traceDictionary = Maps.newTreeMap(); ModelDissector md = new ModelDissector(); encoder.setTraceDictionary(traceDictionary); bias.setTraceDictionary(traceDictionary); for (File file : permute(files, rand).subList(0, 500)) { traceDictionary.clear(); Vector v = encodeFeatureVector(file); md.update(v, traceDictionary, model); } List<String> ngNames = Lists.newArrayList(newsGroups.values()); List<ModelDissector.Weight> weights = md.summary(100); for (ModelDissector.Weight w : weights) { System.out.printf("%s\t%.1f\t%s\t%.1f\t%s\t%.1f\t%s\n", w.getFeature(), w.getWeight(), ngNames.get(w.getMaxImpact() + 1), w.getCategory(1), w.getWeight(1), w.getCategory(2), w.getWeight(2)); } }
w.train(r); if (i % 1000 == 0) { System.out.printf("%10d %.3f\n", i, w.getLearner().auc()); System.out.printf("%10d %.3f\n", 3000, w.getLearner().auc()); double auc1 = w.getLearner().auc(); if (i % 1000 == 0) { if (i == 0) { assertEquals("Should have started with no data", 0.5, w2.getLearner().auc(), 0.0001); double auc2 = w2.getLearner().auc(); assertTrue("Should have had head-start", Math.abs(auc2 - 0.5) > 0.1); assertTrue("AUC should improve quickly on copy", auc1 < auc2); System.out.printf("%10d %.3f\n", i, w2.getLearner().auc()); assertEquals("Original should not change after copy is updated", auc1, w.getLearner().auc(), 1.0e-5); assertTrue("AUC should improve significantly on copy", auc1 < w2.getLearner().auc() - 0.05); assertEquals(auc1, w.getLearner().auc(), 0);
cl.train(r); if (i % 1000 == 0) { System.out.printf("%10d %10.3f\n", i, cl.getLearner().auc()); assertEquals(1, cl.getLearner().auc(), 0.1);
public int getNumCategories() { return seed.getPayload().getLearner().numCategories(); }
public int getNumCategories() { return seed.getPayload().getLearner().numCategories(); }
/** * What is the AUC for the current best member of the population. If no member is best, usually * because we haven't done any training yet, then the result is set to NaN. * * @return The AUC of the best member of the population or NaN if we can't figure that out. */ public double auc() { if (best == null) { return Double.NaN; } else { Wrapper payload = best.getPayload(); return payload.getLearner().auc(); } }
/** * What is the AUC for the current best member of the population. If no member is best, usually * because we haven't done any training yet, then the result is set to NaN. * * @return The AUC of the best member of the population or NaN if we can't figure that out. */ public double auc() { if (best == null) { return Double.NaN; } else { Wrapper payload = best.getPayload(); return payload.getLearner().auc(); } }
/** * What is the AUC for the current best member of the population. If no member is best, usually * because we haven't done any training yet, then the result is set to NaN. * * @return The AUC of the best member of the population or NaN if we can't figure that out. */ public double auc() { if (best == null) { return Double.NaN; } else { Wrapper payload = best.getPayload(); return payload.getLearner().auc(); } }
public PriorFunction getPrior() { return seed.getPayload().getLearner().getPrior(); }
public PriorFunction getPrior() { return seed.getPayload().getLearner().getPrior(); }
public PriorFunction getPrior() { return seed.getPayload().getLearner().getPrior(); }
public void setAveragingWindow(int averagingWindow) { seed.getPayload().getLearner().setWindowSize(averagingWindow); setupOptimizer(poolSize); }
public void setAveragingWindow(int averagingWindow) { seed.getPayload().getLearner().setWindowSize(averagingWindow); setupOptimizer(poolSize); }
public void setAveragingWindow(int averagingWindow) { seed.getPayload().getLearner().setWindowSize(averagingWindow); setupOptimizer(poolSize); }
public int getNumCategories() { return seed.getPayload().getLearner().numCategories(); }