public double getAccuracy (InstanceList ilist) { return new Trial(this, ilist).getAccuracy(); } public double getPrecision (InstanceList ilist, int index) { return new Trial(this, ilist).getPrecision(index); }
public double getAccuracy (InstanceList ilist) { return new Trial(this, ilist).getAccuracy(); } public double getPrecision (InstanceList ilist, int index) { return new Trial(this, ilist).getPrecision(index); }
public double getAccuracy (InstanceList ilist) { return new Trial(this, ilist).getAccuracy(); } public double getPrecision (InstanceList ilist, int index) { return new Trial(this, ilist).getPrecision(index); }
private List<String> createRow( InstanceList training, InstanceList testing, String e, Classifier classifier, Trial trial) { List<String> row = new ArrayList<>(); row.add(e); row.add(Integer.toString(training.size())); row.add(Integer.toString(testing.size())); row.add(Double.toString(trial.getAccuracy())); for (String label : (String[]) classifier.getLabelAlphabet().toArray(new String[0])) { row.add(Double.toString(trial.getF1(label))); row.add(Double.toString(trial.getPrecision(label))); row.add(Double.toString(trial.getRecall(label))); } return row; }
private List<String> createRow( InstanceList training, InstanceList testing, String e, Classifier classifier, Trial trial) { List<String> row = new ArrayList<>(); row.add(e); row.add(Integer.toString(training.size())); row.add(Integer.toString(testing.size())); row.add(Double.toString(trial.getAccuracy())); for (String label : (String[]) classifier.getLabelAlphabet().toArray(new String[0])) { row.add(Double.toString(trial.getF1(label))); row.add(Double.toString(trial.getPrecision(label))); row.add(Double.toString(trial.getRecall(label))); } return row; }
public void testRandomTrained () { ClassifierTrainer[] trainers = new ClassifierTrainer[1]; //trainers[0] = new NaiveBayesTrainer(); trainers[0] = new MaxEntTrainer(); //trainers[2] = new DecisionTreeTrainer(); Alphabet fd = dictOfSize (3); String[] classNames = new String[] {"class0", "class1", "class2"}; InstanceList ilist = new InstanceList (new Randoms(1), fd, classNames, 200); InstanceList lists[] = ilist.split (new java.util.Random(2), new double[] {.5, .5}); //System.out.println ("Training set size = "+lists[0].size()); //System.out.println ("Testing set size = "+lists[1].size()); Classifier[] classifiers = new Classifier[trainers.length]; for (int i = 0; i < trainers.length; i++) classifiers[i] = trainers[i].train (lists[0]); System.out.println ("Accuracy on training set:"); for (int i = 0; i < trainers.length; i++) System.out.println (classifiers[i].getClass().getName() + ": " + new Trial (classifiers[i], lists[0]).getAccuracy()); System.out.println ("Accuracy on testing set:"); for (int i = 0; i < trainers.length; i++) System.out.println (classifiers[i].getClass().getName() + ": " + new Trial (classifiers[i], lists[1]).getAccuracy()); }
public void testRandomTrained () { ClassifierTrainer[] trainers = new ClassifierTrainer[1]; //trainers[0] = new NaiveBayesTrainer(); trainers[0] = new MaxEntTrainer(); //trainers[2] = new DecisionTreeTrainer(); Alphabet fd = dictOfSize (3); String[] classNames = new String[] {"class0", "class1", "class2"}; InstanceList ilist = new InstanceList (new Randoms(1), fd, classNames, 200); InstanceList lists[] = ilist.split (new java.util.Random(2), new double[] {.5, .5}); //System.out.println ("Training set size = "+lists[0].size()); //System.out.println ("Testing set size = "+lists[1].size()); Classifier[] classifiers = new Classifier[trainers.length]; for (int i = 0; i < trainers.length; i++) classifiers[i] = trainers[i].train (lists[0]); System.out.println ("Accuracy on training set:"); for (int i = 0; i < trainers.length; i++) System.out.println (classifiers[i].getClass().getName() + ": " + new Trial (classifiers[i], lists[0]).getAccuracy()); System.out.println ("Accuracy on testing set:"); for (int i = 0; i < trainers.length; i++) System.out.println (classifiers[i].getClass().getName() + ": " + new Trial (classifiers[i], lists[1]).getAccuracy()); }
logger.info("Training set accuracy = " + t.getAccuracy()); Trial t2 = new Trial(foldClassifier, fold[1]); logger.info("Within-fold accuracy = " + t1.getAccuracy()); logger.info("Out-of-fold accuracy = " + t2.getAccuracy());
logger.info("Training set accuracy = " + t.getAccuracy()); Trial t2 = new Trial(foldClassifier, fold[1]); logger.info("Within-fold accuracy = " + t1.getAccuracy()); logger.info("Out-of-fold accuracy = " + t2.getAccuracy());
logger.info("Training set accuracy = " + t.getAccuracy()); Trial t2 = new Trial(foldClassifier, fold[1]); logger.info("Within-fold accuracy = " + t1.getAccuracy()); logger.info("Out-of-fold accuracy = " + t2.getAccuracy());
private double testRandomTrainedOn (InstanceList training) { ClassifierTrainer trainer = new MaxEntTrainer (); Alphabet fd = dictOfSize (3); String[] classNames = new String[] {"class0", "class1", "class2"}; Randoms r = new Randoms (1); Iterator<Instance> iter = new RandomTokenSequenceIterator (r, new Dirichlet(fd, 2.0), 30, 0, 10, 200, classNames); training.addThruPipe (iter); InstanceList testing = new InstanceList (training.getPipe ()); testing.addThruPipe (new RandomTokenSequenceIterator (r, new Dirichlet(fd, 2.0), 30, 0, 10, 200, classNames)); System.out.println ("Training set size = "+training.size()); System.out.println ("Testing set size = "+testing.size()); Classifier classifier = trainer.train (training); System.out.println ("Accuracy on training set:"); System.out.println (classifier.getClass().getName() + ": " + new Trial (classifier, training).getAccuracy()); System.out.println ("Accuracy on testing set:"); double testAcc = new Trial (classifier, testing).getAccuracy(); System.out.println (classifier.getClass().getName() + ": " + testAcc); return testAcc; }
private double testRandomTrainedOn (InstanceList training) { ClassifierTrainer trainer = new MaxEntTrainer (); Alphabet fd = dictOfSize (3); String[] classNames = new String[] {"class0", "class1", "class2"}; Randoms r = new Randoms (1); Iterator<Instance> iter = new RandomTokenSequenceIterator (r, new Dirichlet(fd, 2.0), 30, 0, 10, 200, classNames); training.addThruPipe (iter); InstanceList testing = new InstanceList (training.getPipe ()); testing.addThruPipe (new RandomTokenSequenceIterator (r, new Dirichlet(fd, 2.0), 30, 0, 10, 200, classNames)); System.out.println ("Training set size = "+training.size()); System.out.println ("Testing set size = "+testing.size()); Classifier classifier = trainer.train (training); System.out.println ("Accuracy on training set:"); System.out.println (classifier.getClass().getName() + ": " + new Trial (classifier, training).getAccuracy()); System.out.println ("Accuracy on testing set:"); double testAcc = new Trial (classifier, testing).getAccuracy(); System.out.println (classifier.getClass().getName() + ": " + testAcc); return testAcc; }
for (int i = 0; i < trainers.length; i++) System.out.println (classifiers[i].getClass().getName() + ": " + new Trial (classifiers[i], training).getAccuracy()); for (int i = 0; i < trainers.length; i++) System.out.println (classifiers[i].getClass().getName() + ": " + new Trial (classifiers[i], testing).getAccuracy());
for (int i = 0; i < trainers.length; i++) System.out.println (classifiers[i].getClass().getName() + ": " + new Trial (classifiers[i], training).getAccuracy()); for (int i = 0; i < trainers.length; i++) System.out.println (classifiers[i].getClass().getName() + ": " + new Trial (classifiers[i], testing).getAccuracy());
public AddClassifierTokenPredictions(TokenClassifiers tokenClassifiers, int[] predRanks2add, boolean binary, InstanceList testList) { m_predRanks2add = predRanks2add; m_binary = binary; m_tokenClassifiers = tokenClassifiers; m_inProduction = false; m_dataAlphabet = (Alphabet) tokenClassifiers.getAlphabet().clone(); Alphabet labelAlphabet = tokenClassifiers.getLabelAlphabet(); // add the token prediction features to the alphabet for (int i = 0; i < m_predRanks2add.length; i++) { for (int j = 0; j < labelAlphabet.size(); j++) { String featName = "TOK_PRED=" + labelAlphabet.lookupObject(j).toString() + "_@_RANK_" + m_predRanks2add[i]; m_dataAlphabet.lookupIndex(featName, true); } } // evaluate token classifier if (testList != null) { Trial trial = new Trial(m_tokenClassifiers, testList); logger.info("Token classifier accuracy on test set = " + trial.getAccuracy()); } }
public AddClassifierTokenPredictions(TokenClassifiers tokenClassifiers, int[] predRanks2add, boolean binary, InstanceList testList) { m_predRanks2add = predRanks2add; m_binary = binary; m_tokenClassifiers = tokenClassifiers; m_inProduction = false; m_dataAlphabet = (Alphabet) tokenClassifiers.getAlphabet().clone(); Alphabet labelAlphabet = tokenClassifiers.getLabelAlphabet(); // add the token prediction features to the alphabet for (int i = 0; i < m_predRanks2add.length; i++) { for (int j = 0; j < labelAlphabet.size(); j++) { String featName = "TOK_PRED=" + labelAlphabet.lookupObject(j).toString() + "_@_RANK_" + m_predRanks2add[i]; m_dataAlphabet.lookupIndex(featName, true); } } // evaluate token classifier if (testList != null) { Trial trial = new Trial(m_tokenClassifiers, testList); logger.info("Token classifier accuracy on test set = " + trial.getAccuracy()); } }
public AddClassifierTokenPredictions(TokenClassifiers tokenClassifiers, int[] predRanks2add, boolean binary, InstanceList testList) { m_predRanks2add = predRanks2add; m_binary = binary; m_tokenClassifiers = tokenClassifiers; m_inProduction = false; m_dataAlphabet = (Alphabet) tokenClassifiers.getAlphabet().clone(); Alphabet labelAlphabet = tokenClassifiers.getLabelAlphabet(); // add the token prediction features to the alphabet for (int i = 0; i < m_predRanks2add.length; i++) { for (int j = 0; j < labelAlphabet.size(); j++) { String featName = "TOK_PRED=" + labelAlphabet.lookupObject(j).toString() + "_@_RANK_" + m_predRanks2add[i]; m_dataAlphabet.lookupIndex(featName, true); } } // evaluate token classifier if (testList != null) { Trial trial = new Trial(m_tokenClassifiers, testList); logger.info("Token classifier accuracy on test set = " + trial.getAccuracy()); } }
private void logAccuracyMetrics(Classifier classifier, Trial trial) { getMonitor().info("Accuracy: {}", trial.getAccuracy()); for (String label : (String[]) classifier.getLabelAlphabet().toArray(new String[0])) { getMonitor().info("F1 for class '{}': {}", label, trial.getF1(label)); getMonitor().info("Precision for class '{}' : {}", label, trial.getPrecision(label)); } }
private void logAccuracyMetrics(Classifier classifier, Trial trial) { getMonitor().info("Accuracy: {}", trial.getAccuracy()); for (String label : (String[]) classifier.getLabelAlphabet().toArray(new String[0])) { getMonitor().info("F1 for class '{}': {}", label, trial.getF1(label)); getMonitor().info("Precision for class '{}' : {}", label, trial.getPrecision(label)); } }
double accuracy = t.getAccuracy(); InstanceList confidencePredictionTraining = new InstanceList (confidencePredictingPipe); logger.fine ("Creating confidence prediction instance list");