public double ComputeError(TInput[] inputs, int[] expectedOutputs) { var classifier = (IClassifier <TInput, bool>)Model; var loss = new ZeroOneLoss(Classes.Decide(expectedOutputs)) { Mean = true }; return(loss.Loss(classifier.Decide(inputs))); }
public void kaggle_digits_with_compress() { string root = TestContext.CurrentContext.TestDirectory; var training = Properties.Resources.trainingsample; var validation = Properties.Resources.validationsample; var tset = readData(training); var observations = tset.Item1; var labels = tset.Item2; var teacher = new MulticlassSupportVectorLearning <Linear>(); #if MONO teacher.ParallelOptions.MaxDegreeOfParallelism = 1; #endif var svm = teacher.Learn(observations, labels); Assert.AreEqual(50, svm.Models[0][0].SupportVectors.Length); Assert.AreEqual(127, svm.Models[1][0].SupportVectors.Length); svm.Compress(); Assert.AreEqual(1, svm.Models[0][0].SupportVectors.Length); Assert.AreEqual(1, svm.Models[1][0].SupportVectors.Length); { var trainingLoss = new ZeroOneLoss(labels) { Mean = true }; double error = trainingLoss.Loss(svm.Decide(observations)); Assert.AreEqual(0.054, error); } { var vset = readData(validation); var validationData = vset.Item1; var validationLabels = vset.Item2; var validationLoss = new ZeroOneLoss(validationLabels) { Mean = true }; double val = validationLoss.Loss(svm.Decide(validationData)); Assert.AreEqual(0.082, val); } }
public void kaggle_digits_old_style() { string root = Environment.CurrentDirectory; var training = Properties.Resources.trainingsample; var validation = Properties.Resources.validationsample; var tset = readData(training); var observations = tset.Item1; var labels = tset.Item2; var teacher = new MulticlassSupportVectorLearning(); #if MONO teacher.ParallelOptions.MaxDegreeOfParallelism = 1; #endif var svm = teacher.Learn(observations, labels); { var trainingLoss = new ZeroOneLoss(labels) { Mean = true }; double error = trainingLoss.Loss(svm.Decide(observations)); Assert.AreEqual(0.054, error); } { var vset = readData(validation); var validationData = vset.Item1; var validationLabels = vset.Item2; var validationLoss = new ZeroOneLoss(validationLabels) { Mean = true }; double val = validationLoss.Loss(svm.Decide(validationData)); Assert.AreEqual(0.082, val); } }
public void kaggle_digits_with_compress() { string root = Environment.CurrentDirectory; var training = Properties.Resources.trainingsample; var validation = Properties.Resources.validationsample; var tset = readData(training); var observations = tset.Item1; var labels = tset.Item2; var teacher = new MulticlassSupportVectorLearning<Linear>(); var svm = teacher.Learn(observations, labels); Assert.AreEqual(50, svm.Models[0][0].SupportVectors.Length); Assert.AreEqual(127, svm.Models[1][0].SupportVectors.Length); svm.Compress(); Assert.AreEqual(1, svm.Models[0][0].SupportVectors.Length); Assert.AreEqual(1, svm.Models[1][0].SupportVectors.Length); { var trainingLoss = new ZeroOneLoss(labels) { Mean = true }; double error = trainingLoss.Loss(svm.Decide(observations)); Assert.AreEqual(0.054, error); } { var vset = readData(validation); var validationData = vset.Item1; var validationLabels = vset.Item2; var validationLoss = new ZeroOneLoss(validationLabels) { Mean = true }; double val = validationLoss.Loss(svm.Decide(validationData)); Assert.AreEqual(0.082, val); } }