public void TestMaxentOnPrepAttachData() { var model = new GISTrainer().TrainModel(100, new TwoPassDataIndexer(PrepAttachDataUtility.CreateTrainingStream(), 1), 1); PrepAttachDataUtility.TestModel(model, 0.7997028967566229d); }
public void TestPerceptronOnPrepAttachData() { var model = new PerceptronTrainer().TrainModel(400, new TwoPassDataIndexer(PrepAttachDataUtility.CreateTrainingStream(), 1, false), 1); PrepAttachDataUtility.TestModel(model, 0.7650408516959644); }
public void TestPerceptronOnPrepAttachDataWithStepSizeDecrease() { var trainParams = new TrainingParameters(); trainParams.Set(Parameters.Algorithm, Parameters.Algorithms.Perceptron); trainParams.Set(Parameters.Cutoff, "1"); trainParams.Set(Parameters.Iterations, "500"); trainParams.Set(Parameters.StepSizeDecrease, "0.06"); var trainer = TrainerFactory.GetEventTrainer(trainParams, null, null); var model = trainer.Train(PrepAttachDataUtility.CreateTrainingStream()); /* * The java test gives an error too, soo.... for now i'll assume that is correct :P * * java.lang.AssertionError: expected:<0.7756870512503095> but was:<0.7766773953948998> * at org.junit.Assert.fail(Assert.java:91) * at org.junit.Assert.failNotEquals(Assert.java:645) * at org.junit.Assert.assertEquals(Assert.java:441) * at org.junit.Assert.assertEquals(Assert.java:510) */ //PrepAttachDataUtility.TestModel(model, 0.7756870512503095); < OpenNLP value PrepAttachDataUtility.TestModel(model, 0.77742015350334237); }
public void TestQnOnPrepAttachData() { var model = new QNTrainer().TrainModel(100, new TwoPassDataIndexer(PrepAttachDataUtility.CreateTrainingStream(), 1)); TestModel(model, 0.8155484030700668); }
public void TestNaiveBayesOnPrepAttachData() { var model = NaiveBayesTests.TrainModel(PrepAttachDataUtility.CreateTrainingStream()); Assert.NotNull(model); PrepAttachDataUtility.TestModel(model, 0.7897994553107205); }
public void TestMaxentOnPrepAttachData2Threads() { var trainer = new GISTrainer(); var di = new TwoPassDataIndexer(PrepAttachDataUtility.CreateTrainingStream(), 1); var model = trainer.TrainModel(100, di, new UniformPrior(), 1, 2); PrepAttachDataUtility.TestModel(model, 0.7997028967566229d); }
public void TestMaxentOnPrepAttachDataWithParamsDefault() { var reportMap = new Dictionary <string, string>(); var trainParams = new TrainingParameters(); trainParams.Set(Parameters.Algorithm, Parameters.Algorithms.MaxEnt); var trainer = TrainerFactory.GetEventTrainer(trainParams, reportMap, null); var model = trainer.Train(PrepAttachDataUtility.CreateTrainingStream()); PrepAttachDataUtility.TestModel(model, 0.8086159940579352d); }
public void TestQnOnPrepAttachDataWithParamsDefault() { var trainParams = new TrainingParameters(); trainParams.Set(Parameters.Algorithm, Parameters.Algorithms.MaxEntQn); var trainer = TrainerFactory.GetEventTrainer(trainParams, null, null); var model = trainer.Train(PrepAttachDataUtility.CreateTrainingStream()); TestModel(model, 0.8115870264917059); }
public void TestPerceptronOnPrepAttachDataWithSkippedAveraging() { var trainParams = new TrainingParameters(); trainParams.Set(Parameters.Algorithm, Parameters.Algorithms.Perceptron); trainParams.Set(Parameters.Cutoff, "1"); trainParams.Set(Parameters.UseSkippedAveraging, "true"); var trainer = TrainerFactory.GetEventTrainer(trainParams, null, null); var model = trainer.Train(PrepAttachDataUtility.CreateTrainingStream()); PrepAttachDataUtility.TestModel(model, 0.773706362961129); }
public void TestMaxentOnPrepAttachDataWithParams() { var reportMap = new Dictionary <string, string>(); var trainParams = new TrainingParameters(); trainParams.Set(Parameters.Algorithm, Parameters.Algorithms.MaxEnt); trainParams.Set(Parameters.DataIndexer, Parameters.DataIndexers.TwoPass); trainParams.Set(Parameters.Cutoff, "1"); var trainer = TrainerFactory.GetEventTrainer(trainParams, reportMap, null); var model = trainer.Train(PrepAttachDataUtility.CreateTrainingStream()); PrepAttachDataUtility.TestModel(model, 0.7997028967566229d); }
public void TestPerceptronOnPrepAttachDataWithTolerance() { var trainParams = new TrainingParameters(); trainParams.Set(Parameters.Algorithm, Parameters.Algorithms.Perceptron); trainParams.Set(Parameters.Cutoff, "1"); trainParams.Set(Parameters.Iterations, "500"); trainParams.Set(Parameters.Tolerance, "0.0001"); var trainer = TrainerFactory.GetEventTrainer(trainParams, null, null); var model = trainer.Train(PrepAttachDataUtility.CreateTrainingStream()); PrepAttachDataUtility.TestModel(model, 0.7677642980935875); }
public void TestQnOnPrepAttachDataInParallel() { var trainParams = new TrainingParameters(); trainParams.Set(Parameters.Algorithm, Parameters.Algorithms.MaxEntQn); //trainParams.Set(Parameters.Iterations, "100"); trainParams.Set(Parameters.Threads, "2"); var trainer = TrainerFactory.GetEventTrainer(trainParams, null, null); var model = trainer.Train(PrepAttachDataUtility.CreateTrainingStream()); TestModel(model, 0.8115870264917059); }
public void TestQnOnPrepAttachDataWithL2Params() { var trainParams = new TrainingParameters(); trainParams.Set(Parameters.Algorithm, Parameters.Algorithms.MaxEntQn); trainParams.Set(Parameters.DataIndexer, Parameters.DataIndexers.TwoPass); trainParams.Set(Parameters.Cutoff, "1"); trainParams.Set(Parameters.L1Cost, "0"); trainParams.Set(Parameters.L2Cost, "1.0"); var trainer = TrainerFactory.GetEventTrainer(trainParams, null, null); var model = trainer.Train(PrepAttachDataUtility.CreateTrainingStream()); TestModel(model, 0.8227283981183461); }
public void TestNaiveBayesOnPrepAttachDataUsingTrainUtilWithCutoff5() { var parameters = TrainingParameters.DefaultParameters(); parameters.Set(Parameters.Algorithm, Parameters.Algorithms.NaiveBayes); parameters.Set(Parameters.Cutoff, "5"); var trainer = TrainerFactory.GetEventTrainer(parameters, null, null); Assert.NotNull(trainer); Assert.IsInstanceOf <NaiveBayesTrainer>(trainer); var model = trainer.Train(PrepAttachDataUtility.CreateTrainingStream()); Assert.NotNull(model); PrepAttachDataUtility.TestModel(model, 0.7945035899975241); }
private static void TestModel(IMaxentModel model, double expectedAccuracy) { var devEvents = PrepAttachDataUtility.ReadPpaFile(@"devset"); var total = 0; var correct = 0; foreach (var ev in devEvents) { var targetLabel = ev.Outcome; var ocs = model.Eval(ev.Context); var best = 0; for (var i = 1; i < ocs.Length; i++) { if (ocs[i] > ocs[best]) { best = i; } } var predictedLabel = model.GetOutcome(best); if (targetLabel.Equals(predictedLabel)) { correct++; } total++; } var accuracy = correct / (double)total; Debug.WriteLine("Accuracy on PPA devset: (" + correct + "/" + total + ") " + accuracy); Assert.AreEqual(expectedAccuracy, accuracy, .00001); }