public void GetClassifiedVectorsTest(string filePath, bool skipParseError, bool skipOutOfRangeClass, int[] expectedVectorCounts) { ClassifiedDataset dataset = new ClassifiedDataset(filePath, 64, 2); if (dataset.SkipParsingErrors != skipParseError) { dataset.SkipParsingErrors = skipParseError; } if (dataset.SkipClassValueOutOfRange != skipOutOfRangeClass) { dataset.SkipClassValueOutOfRange = skipOutOfRangeClass; } IList<Vector>[] classifiedVectors = dataset.GetClassifiedVectors(); Assert.That(classifiedVectors.Length, Is.EqualTo(2)); for (int i = 0; i < 2; i++) { Assert.That(classifiedVectors[i].Count, Is.EqualTo(expectedVectorCounts[i])); } }
public void TrainModelAndTestModelTest(string trainFile, string testFile) { var trainModel = new TrainModel(2, 0.1); var trainDataset = new ClassifiedDataset(trainFile, 64, 2); trainModel.Train(trainDataset.GetClassifiedVectors()); var testModel = new TestModel(2, 0.1); var testDataset = new UnclassifiedDataset(testFile, 64); var testData = testDataset.GetDataVectors().Select(v => v.FeatureVector).ToArray(); var results = testModel.Test(trainModel.GetInferredPosterier(), testData); Assert.That(results.Length, Is.EqualTo(testData.Length)); }
public void TrainModelIncrementalTrainTest(string trainFile1, string trainFile2) { var model = new TrainModel(2, 0.1); var dataset1 = new ClassifiedDataset(trainFile1, 64, 2); model.TrainIncremental(dataset1.GetClassifiedVectors()); var posteriors1 = model.GetInferredPosterier(); var dataset2 = new ClassifiedDataset(trainFile2, 64, 2); model.TrainIncremental(dataset2.GetClassifiedVectors()); var posteriors2 = model.GetInferredPosterier(); Assert.AreEqual(posteriors1.Length, posteriors2.Length); Assert.That(posteriors1.Intersect(posteriors2).Count() < posteriors1.Length); }
public void TrainModelWithFeatureSelectionTest(string trainFile, int[] featureSelection) { var model = new TrainModel(2, 0.1); var dataset = new ClassifiedDataset(trainFile, 64, featureSelection, 2); model.Train(dataset.GetClassifiedVectors()); var posteriors = model.GetInferredPosterier(); Assert.That(posteriors.Length, Is.EqualTo(2)); foreach (var p in posteriors) { Assert.That(p.Dimension, Is.EqualTo(featureSelection.Length)); } }