Repository: incubator-samoa Updated Branches: refs/heads/master 30a4ed185 -> 81138478c (forced update)
SAMOA-53: Add tests for the new prequential cv evaluation task Project: http://git-wip-us.apache.org/repos/asf/incubator-samoa/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-samoa/commit/bd159596 Tree: http://git-wip-us.apache.org/repos/asf/incubator-samoa/tree/bd159596 Diff: http://git-wip-us.apache.org/repos/asf/incubator-samoa/diff/bd159596 Branch: refs/heads/master Commit: bd15959695f4642ed9a6f17a76ffa21718a0be2a Parents: 7a17765 Author: Albert Bifet <[email protected]> Authored: Wed Feb 3 14:03:00 2016 +0100 Committer: Albert Bifet <[email protected]> Committed: Tue Mar 15 20:39:25 2016 +0100 ---------------------------------------------------------------------- .../test/java/org/apache/samoa/AlgosTest.java | 18 +++++++++++++++ .../test/java/org/apache/samoa/AlgosTest.java | 20 ++++++++++++++++ .../test/java/org/apache/samoa/TestParams.java | 4 ++++ .../test/java/org/apache/samoa/TestUtils.java | 24 +++++++++++--------- 4 files changed, 55 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-samoa/blob/bd159596/samoa-local/src/test/java/org/apache/samoa/AlgosTest.java ---------------------------------------------------------------------- diff --git a/samoa-local/src/test/java/org/apache/samoa/AlgosTest.java b/samoa-local/src/test/java/org/apache/samoa/AlgosTest.java index 1f7be7e..52331c5 100644 --- a/samoa-local/src/test/java/org/apache/samoa/AlgosTest.java +++ b/samoa-local/src/test/java/org/apache/samoa/AlgosTest.java @@ -78,4 +78,22 @@ public class AlgosTest { .build(); TestUtils.test(vhtConfig); } + + @Test + public void testCVPreqVHTLocal() throws Exception { + TestParams vhtConfig = new TestParams.Builder() + .inputInstances(200_000) + .samplingSize(20_000) + .evaluationInstances(200_000) + .classifiedInstances(200_000) + .classificationsCorrect(75f) + .kappaStat(0f) + .kappaTempStat(0f) + .cliStringTemplate(TestParams.Templates.PREQCVEVAL_VHT_RANDOMTREE) + .resultFilePollTimeout(10) + .prePollWait(10) + .taskClassName(LocalDoTask.class.getName()) + .build(); + TestUtils.test(vhtConfig); + } } http://git-wip-us.apache.org/repos/asf/incubator-samoa/blob/bd159596/samoa-storm/src/test/java/org/apache/samoa/AlgosTest.java ---------------------------------------------------------------------- diff --git a/samoa-storm/src/test/java/org/apache/samoa/AlgosTest.java b/samoa-storm/src/test/java/org/apache/samoa/AlgosTest.java index 2208be9..d874e51 100644 --- a/samoa-storm/src/test/java/org/apache/samoa/AlgosTest.java +++ b/samoa-storm/src/test/java/org/apache/samoa/AlgosTest.java @@ -66,4 +66,24 @@ public class AlgosTest { } + @Test(timeout = 120000) + public void testCVPReqVHTWithStorm() throws Exception { + + TestParams vhtConfig = new TestParams.Builder() + .inputInstances(200_000) + .samplingSize(20_000) + .evaluationInstances(200_000) + .classifiedInstances(200_000) + .classificationsCorrect(55f) + .kappaStat(0f) + .kappaTempStat(0f) + .cliStringTemplate(TestParams.Templates.PREQCVEVAL_VHT_RANDOMTREE) + .resultFilePollTimeout(30) + .prePollWait(15) + .taskClassName(LocalStormDoTask.class.getName()) + .build(); + TestUtils.test(vhtConfig); + + } + } http://git-wip-us.apache.org/repos/asf/incubator-samoa/blob/bd159596/samoa-test/src/test/java/org/apache/samoa/TestParams.java ---------------------------------------------------------------------- diff --git a/samoa-test/src/test/java/org/apache/samoa/TestParams.java b/samoa-test/src/test/java/org/apache/samoa/TestParams.java index 615d4da..fa0a376 100644 --- a/samoa-test/src/test/java/org/apache/samoa/TestParams.java +++ b/samoa-test/src/test/java/org/apache/samoa/TestParams.java @@ -49,6 +49,10 @@ public class TestParams { + "-l (org.apache.samoa.learners.classifiers.ensemble.Bagging) " + "-s (org.apache.samoa.streams.generators.RandomTreeGenerator -c 2 -o 0 -u 10)"; + public final static String PREQCVEVAL_VHT_RANDOMTREE = "PrequentialCVEvaluation -d %s -i %d -f %d -w %d " + + "-l (org.apache.samoa.learners.classifiers.trees.VerticalHoeffdingTree -p 4) " + + "-s (org.apache.samoa.moa.streams.generators.RandomTreeGenerator -c 2 -o 10 -u 10)"; + } public static final String EVALUATION_INSTANCES = "evaluation instances"; http://git-wip-us.apache.org/repos/asf/incubator-samoa/blob/bd159596/samoa-test/src/test/java/org/apache/samoa/TestUtils.java ---------------------------------------------------------------------- diff --git a/samoa-test/src/test/java/org/apache/samoa/TestUtils.java b/samoa-test/src/test/java/org/apache/samoa/TestUtils.java index 546e6f4..331f900 100644 --- a/samoa-test/src/test/java/org/apache/samoa/TestUtils.java +++ b/samoa-test/src/test/java/org/apache/samoa/TestUtils.java @@ -101,16 +101,18 @@ public class TestUtils { CSVRecord last = null; Iterator<CSVRecord> iterator = records.iterator(); CSVRecord header = iterator.next(); - Assert.assertEquals("Invalid number of columns", 5, header.size()); + // Results of Standard Evaluation have 5 columns, and cv Evaluation have 9 columns + int cvEvaluation = (header.size() == 9) ? 1: 0; + String cvText = (header.size() == 9) ? "[avg] " : ""; Assert .assertEquals("Unexpected column", org.apache.samoa.TestParams.EVALUATION_INSTANCES, header.get(0).trim()); Assert - .assertEquals("Unexpected column", org.apache.samoa.TestParams.CLASSIFIED_INSTANCES, header.get(1).trim()); - Assert.assertEquals("Unexpected column", org.apache.samoa.TestParams.CLASSIFICATIONS_CORRECT, header.get(2) + .assertEquals("Unexpected column", cvText + org.apache.samoa.TestParams.CLASSIFIED_INSTANCES, header.get(1).trim()); + Assert.assertEquals("Unexpected column", cvText + org.apache.samoa.TestParams.CLASSIFICATIONS_CORRECT, header.get(2 + cvEvaluation) .trim()); - Assert.assertEquals("Unexpected column", org.apache.samoa.TestParams.KAPPA_STAT, header.get(3).trim()); - Assert.assertEquals("Unexpected column", org.apache.samoa.TestParams.KAPPA_TEMP_STAT, header.get(4).trim()); + Assert.assertEquals("Unexpected column", cvText + org.apache.samoa.TestParams.KAPPA_STAT, header.get(3 + 2 * cvEvaluation).trim()); + Assert.assertEquals("Unexpected column", cvText + org.apache.samoa.TestParams.KAPPA_TEMP_STAT, header.get(4 + 3 * cvEvaluation).trim()); // 2. check last line result while (iterator.hasNext()) { @@ -124,14 +126,14 @@ public class TestUtils { Float.parseFloat(last.get(1))), testParams.getClassifiedInstances() <= Float.parseFloat(last.get(1))); assertTrue(String.format("Unmet threshold expected %f got %f", - testParams.getClassificationsCorrect(), Float.parseFloat(last.get(2))), - testParams.getClassificationsCorrect() <= Float.parseFloat(last.get(2))); + testParams.getClassificationsCorrect(), Float.parseFloat(last.get(2 + cvEvaluation))), + testParams.getClassificationsCorrect() <= Float.parseFloat(last.get(2 + cvEvaluation))); assertTrue(String.format("Unmet threshold expected %f got %f", - testParams.getKappaStat(), Float.parseFloat(last.get(3))), - testParams.getKappaStat() <= Float.parseFloat(last.get(3))); + testParams.getKappaStat(), Float.parseFloat(last.get(3 + 2 * cvEvaluation))), + testParams.getKappaStat() <= Float.parseFloat(last.get(3 + 2 * cvEvaluation))); assertTrue(String.format("Unmet threshold expected %f got %f", - testParams.getKappaTempStat(), Float.parseFloat(last.get(4))), - testParams.getKappaTempStat() <= Float.parseFloat(last.get(4))); + testParams.getKappaTempStat(), Float.parseFloat(last.get(4 + 3 * cvEvaluation))), + testParams.getKappaTempStat() <= Float.parseFloat(last.get(4 + 3 * cvEvaluation))); }
