public void TrainTest1() { const int LearnCount = 100; const int TestCount = 1000; const int Length = 300; const double PositiveRatio = 0.1; // create samples List <(float[] x, bool y, float weight)> samples = SupportVectorMachineTest.GenerateSamples(LearnCount + TestCount, Length, PositiveRatio) .Select(x => (x.x.Select(w => (float)w).ToArray(), x.y, (float)x.weight)) .ToList(); // learn SequentualMinimalOptimization smo = new SequentualMinimalOptimization(new ChiSquare()) { Algorithm = SMOAlgorithm.LibSVM, Tolerance = 0.01f, }; SupportVectorMachine machine = SupportVectorMachine.Learn( smo, samples.Take(LearnCount).Select(x => x.x).ToList(), samples.Take(LearnCount).Select(x => x.y).ToList(), samples.Take(LearnCount).Select(x => x.weight).ToList(), CancellationToken.None); // test List <ClassificationResult <bool?> > results = samples .Skip(LearnCount) .Select(x => new ClassificationResult <bool?>(null, machine.Classify(x.x) > 0.5f, x.y, 1.0f, true)) .ToList(); ClassificationReport <bool?> report = new ClassificationReport <bool?>(results); }