private static TrainingResults LoadCompressed(string path) { log.Debug("LoadNormal: {0}", path); TrainingHeader header = null; Model model = null; IArffDataSet dataSet = null; using (ZipArchive archive = ZipFile.OpenRead(path)) { foreach (ZipArchiveEntry entry in archive.Entries) { if (entry.FullName.EndsWith(headerFile, StringComparison.OrdinalIgnoreCase)) { header = XDocument.Load(entry.Open()).XmlDeserialize <TrainingHeader>(); } else if (entry.FullName.EndsWith(modelFile, StringComparison.OrdinalIgnoreCase)) { model = Model.Read(entry.Open()); } else if (entry.FullName.EndsWith(arffFile, StringComparison.OrdinalIgnoreCase)) { using (StreamReader reader = new StreamReader(entry.Open())) { dataSet = ArffDataSet.LoadSimple(reader); } } } } return(new TrainingResults(model, header, dataSet)); }
public void Compute() { var dataSet = ArffDataSet.LoadSimple(Path.Combine(TestContext.CurrentContext.TestDirectory, "Data", @"problem.arff")); var problem = new ProblemSource(dataSet).GetProblem(); var transform = RangeTransform.Compute(problem); var result = transform.Scale(problem); Assert.IsNotNull(result); }
public void Setup() { var file = Path.Combine(TestContext.CurrentContext.TestDirectory, "data", "data.arff"); var dataSet = ArffDataSet.LoadSimple(file); file = Path.Combine(TestContext.CurrentContext.TestDirectory, "data", "model.dat"); var model = Wikiled.MachineLearning.Svm.Logic.Model.Read(file); instance = new LearnedClassifier( new DocumentParser(Global.TextSplitter, new DevExpressParserFactory(20)), new SvmTestClient(dataSet, model)); }
public async Task TestTwoClass() { var problemFactory = new ProblemFactory(twoClassDataset); SvmTraining training = new SvmTraining(problemFactory, twoClassDataset); var parameters = training.SelectParameters(TrainingHeader.CreateDefault(), CancellationToken.None); var results = await training.Train(parameters).ConfigureAwait(false); var file = Path.Combine(TestContext.CurrentContext.TestDirectory, "data.arff"); threeClassDataset.Save(file); var testFile = ArffDataSet.LoadSimple(file); SvmTesting testing = new SvmTesting(results.Model, problemFactory); var result = testing.Test(testFile, Path.Combine(TestContext.CurrentContext.TestDirectory, ".")); Assert.AreEqual(1, result); }
public void Classify(string arff, string modelName, object result) { var file = Path.Combine(TestContext.CurrentContext.TestDirectory, "data", arff); var dataSet = result.GetType() == typeof(PositivityType) ? ArffDataSet.Load <PositivityType>(file) : ArffDataSet.LoadSimple(file); file = Path.Combine(TestContext.CurrentContext.TestDirectory, "data", modelName); var model = Model.Read(file); IProblemFactory factory = new ProblemFactory(dataSet); var client = new SvmTesting(model, factory); var dataHolder = dataSet.CreateDataSet("Test"); var review = dataHolder.AddDocument(); review.AddRecord("Good").Value = 2; review.AddRecord("Bad").Value = 1; client.Classify(dataHolder); Assert.AreEqual(result, review.Class.Value); }
public async Task TestMultiClass() { var dataSet = ArffDataSet.CreateSimple("Test"); dataSet.Header.RegisterNominalClass("One", "Two", "Three"); dataSet.UseTotal = true; for (int i = 0; i < 20; i++) { var one = dataSet.AddDocument(); one.Class.Value = "One"; one.AddRecord("Good"); var two = dataSet.AddDocument(); two.Class.Value = "Two"; two.AddRecord("Bad"); var three = dataSet.AddDocument(); three.Class.Value = "Three"; three.AddRecord("Some"); } var problemFactory = new ProblemFactory(dataSet); SvmTraining training = new SvmTraining(problemFactory, dataSet); var parameters = training.SelectParameters(TrainingHeader.CreateDefault(), CancellationToken.None); var results = await training.Train(parameters).ConfigureAwait(false); var file = Path.Combine(TestContext.CurrentContext.TestDirectory, "data.arff"); dataSet.Save(file); results.Model.Write(Path.Combine(TestContext.CurrentContext.TestDirectory, "label.dat")); var testFile = ArffDataSet.LoadSimple(file); SvmTesting testing = new SvmTesting(results.Model, problemFactory); var result = testing.Test(testFile, Path.Combine(TestContext.CurrentContext.TestDirectory, ".")); Assert.AreEqual(1, result); }
private static TrainingResults LoadNormal(string path) { log.Debug("LoadNormal: {0}", path); if (!Directory.Exists(path)) { throw new ArgumentOutOfRangeException(nameof(path), path); } var file = GetFile(path, headerFile); var header = File.Exists(file) ? XDocument.Load(file).XmlDeserialize <TrainingHeader>() : null; var model = Model.Read(GetFile(path, modelFile)); IArffDataSet arff; using (FileStream stream = new FileStream(GetFile(path, arffFile), FileMode.Open)) { using (StreamReader reader = new StreamReader(stream)) { arff = ArffDataSet.LoadSimple(reader); } } return(new TrainingResults(model, header, arff)); }