public void TestExecute() { var mxKFoldRun = new MxKFoldRun(5, 2); var experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new C45(), new C45Parameter(1, true, 0.2), iris)); Assert.AreEqual(68.67, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new C45(), new C45Parameter(1, true, 0.2), tictactoe)); Assert.AreEqual(84.66, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Knn(), new KnnParameter(1, 3, new EuclidianDistance()), bupa)); Assert.AreEqual(33.61, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Knn(), new KnnParameter(1, 3, new EuclidianDistance()), dermatology)); Assert.AreEqual(18.31, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Lda(), new Parameter(1), bupa)); Assert.AreEqual(30.43, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Lda(), new Parameter(1), dermatology)); Assert.AreEqual(5.46, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new LinearPerceptron(), new LinearPerceptronParameter(1, 0.1, 0.99, 0.2, 100), iris)); Assert.AreEqual(82.67, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new LinearPerceptron(), new LinearPerceptronParameter(1, 0.1, 0.99, 0.2, 100), dermatology)); Assert.AreEqual(7.92, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new NaiveBayes(), new Parameter(1), car)); Assert.AreEqual(34.09, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new NaiveBayes(), new Parameter(1), nursery)); Assert.AreEqual(38.97, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Bagging(), new BaggingParameter(1, 50), tictactoe)); Assert.AreEqual(84.55, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Bagging(), new BaggingParameter(1, 50), car)); Assert.AreEqual(34.20, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Dummy(), new Parameter(1), nursery)); Assert.AreEqual(84.57, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); experimentPerformance = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Dummy(), new Parameter(1), iris)); Assert.AreEqual(100.0, 100 * experimentPerformance.MeanPerformance().GetErrorRate(), 0.01); }
public void TestCompare() { var mxKFoldRun = new MxKFoldRun(5, 2); var experimentPerformance1 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new C45(), new C45Parameter(1, true, 0.2), iris)); var experimentPerformance2 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new LinearPerceptron(), new LinearPerceptronParameter(1, 0.1, 0.99, 0.2, 100), iris)); var paired5x2t = new Paired5x2t(); Assert.AreEqual(0.329, paired5x2t.Compare(experimentPerformance1, experimentPerformance2).GetPValue(), 0.001); experimentPerformance1 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new C45(), new C45Parameter(1, true, 0.2), tictactoe)); experimentPerformance2 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Bagging(), new BaggingParameter(1, 50), tictactoe)); Assert.AreEqual(0.00159, paired5x2t.Compare(experimentPerformance1, experimentPerformance2).GetPValue(), 0.00001); experimentPerformance1 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Lda(), new Parameter(1), dermatology)); experimentPerformance2 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new LinearPerceptron(), new LinearPerceptronParameter(1, 0.1, 0.99, 0.2, 100), dermatology)); Assert.AreEqual(0.769, paired5x2t.Compare(experimentPerformance1, experimentPerformance2).GetPValue(), 0.001); experimentPerformance1 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Dummy(), new Parameter(1), nursery)); experimentPerformance2 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new NaiveBayes(), new Parameter(1), nursery)); Assert.AreEqual(0.0, paired5x2t.Compare(experimentPerformance1, experimentPerformance2).GetPValue(), 0.0001); experimentPerformance1 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new NaiveBayes(), new Parameter(1), car)); experimentPerformance2 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Bagging(), new BaggingParameter(1, 50), car)); Assert.AreEqual(0.0078, paired5x2t.Compare(experimentPerformance1, experimentPerformance2).GetPValue(), 0.0001); experimentPerformance1 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Knn(), new KnnParameter(1, 3, new EuclidianDistance()), bupa)); experimentPerformance2 = mxKFoldRun.Execute(new Classification.Experiment.Experiment(new Lda(), new Parameter(1), bupa)); Assert.AreEqual(0.035, paired5x2t.Compare(experimentPerformance1, experimentPerformance2).GetPValue(), 0.001); }