Repository: incubator-samoa
Updated Branches:
  refs/heads/master 1bd1012af -> 81138478c


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)));
 
   }
 

Reply via email to