public RandomTokenSequenceIterator (Randoms r, int vocabSize, int numClasses) { this (r, new Dirichlet(dictOfSize(vocabSize), 2.0), 30, 0, 10, 20, classNamesOfSize(numClasses)); }
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; }
public RandomTokenSequenceIterator (Randoms r, int vocabSize, int numClasses) { this (r, new Dirichlet(dictOfSize(vocabSize), 2.0), 30, 0, 10, 20, classNamesOfSize(numClasses)); }
Iterator<Instance> iter = new RandomTokenSequenceIterator ( r, new Dirichlet (fd, 2.0), 30, 0,
public RandomTokenSequenceIterator (Randoms r, int vocabSize, int numClasses) { this (r, new Dirichlet(dictOfSize(vocabSize), 2.0), 30, 0, 10, 20, classNamesOfSize(numClasses)); }
Iterator<Instance> iter = new RandomTokenSequenceIterator ( r, new Dirichlet (fd, 2.0), 30, 0,
/** * Creates a list consisting of randomly-generated * <code>FeatureVector</code>s. */ // xxx Perhaps split these out into a utility class public InstanceList (Randoms r, // the generator of all random-ness used here Dirichlet classCentroidDistribution, // includes a Alphabet double classCentroidAverageAlphaMean, // Gaussian mean on the sum of alphas double classCentroidAverageAlphaVariance, // Gaussian variance on the sum of alphas double featureVectorSizePoissonLambda, double classInstanceCountPoissonLambda, String[] classNames) { this (new SerialPipes (new Pipe[] { new TokenSequence2FeatureSequence (), new FeatureSequence2FeatureVector (), new Target2Label()})); //classCentroidDistribution.print(); Iterator<Instance> iter = new RandomTokenSequenceIterator ( r, classCentroidDistribution, classCentroidAverageAlphaMean, classCentroidAverageAlphaVariance, featureVectorSizePoissonLambda, classInstanceCountPoissonLambda, classNames); this.addThruPipe (iter); }
/** * Creates a list consisting of randomly-generated * <code>FeatureVector</code>s. */ // xxx Perhaps split these out into a utility class public InstanceList (Randoms r, // the generator of all random-ness used here Dirichlet classCentroidDistribution, // includes a Alphabet double classCentroidAverageAlphaMean, // Gaussian mean on the sum of alphas double classCentroidAverageAlphaVariance, // Gaussian variance on the sum of alphas double featureVectorSizePoissonLambda, double classInstanceCountPoissonLambda, String[] classNames) { this (new SerialPipes (new Pipe[] { new TokenSequence2FeatureSequence (), new FeatureSequence2FeatureVector (), new Target2Label()})); //classCentroidDistribution.print(); Iterator<Instance> iter = new RandomTokenSequenceIterator ( r, classCentroidDistribution, classCentroidAverageAlphaMean, classCentroidAverageAlphaVariance, featureVectorSizePoissonLambda, classInstanceCountPoissonLambda, classNames); this.addThruPipe (iter); }
/** * Creates a list consisting of randomly-generated * <code>FeatureVector</code>s. */ // xxx Perhaps split these out into a utility class public InstanceList (Randoms r, // the generator of all random-ness used here Dirichlet classCentroidDistribution, // includes a Alphabet double classCentroidAverageAlphaMean, // Gaussian mean on the sum of alphas double classCentroidAverageAlphaVariance, // Gaussian variance on the sum of alphas double featureVectorSizePoissonLambda, double classInstanceCountPoissonLambda, String[] classNames) { this (new SerialPipes (new Pipe[] { new TokenSequence2FeatureSequence (), new FeatureSequence2FeatureVector (), new Target2Label()})); //classCentroidDistribution.print(); Iterator<Instance> iter = new RandomTokenSequenceIterator ( r, classCentroidDistribution, classCentroidAverageAlphaMean, classCentroidAverageAlphaVariance, featureVectorSizePoissonLambda, classInstanceCountPoissonLambda, classNames); this.addThruPipe (iter); }