From a42cbcda1c9303f514a4e9895beeec0f44c323a0 Mon Sep 17 00:00:00 2001 From: "Alex J. Champandard" Date: Thu, 31 Dec 2015 18:34:42 +0100 Subject: [PATCH 1/2] Adding tests for voting ensemble to check for bug reported in #154. Fix another classifier test. --- sknn/tests/test_classifier.py | 4 ++++ sknn/tests/test_sklearn.py | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/sknn/tests/test_classifier.py b/sknn/tests/test_classifier.py index de9be78..d72098d 100644 --- a/sknn/tests/test_classifier.py +++ b/sknn/tests/test_classifier.py @@ -45,12 +45,16 @@ def test_PredictUninitializedNoLabels(self): def test_PredictBinaryProbability(self): a_in = numpy.random.uniform(-1.0, 1.0, size=(8,16)) a_out = numpy.array((a_in.sum(axis=1) >= 0.0), dtype=numpy.int32) + a_out[0], a_out[-1] = 0, 1 self.nn.fit(a_in, a_out) a_proba = self.nn.predict_proba(a_in) + a_test = self.nn.predict(a_in) c_out = numpy.unique(a_out) + assert_equal(2, c_out.shape[0]) assert_equal(2, a_proba.shape[1]) + assert_equal(1, a_test.ndim) def test_PredictClasses(self): a_in, a_out = numpy.zeros((8,16)), numpy.random.randint(0, 5, (8,)) diff --git a/sknn/tests/test_sklearn.py b/sknn/tests/test_sklearn.py index 9fcf105..27dd7b1 100644 --- a/sknn/tests/test_sklearn.py +++ b/sknn/tests/test_sklearn.py @@ -6,7 +6,8 @@ from sklearn.grid_search import GridSearchCV, RandomizedSearchCV from sklearn.cross_validation import cross_val_score - +from sklearn.ensemble import VotingClassifier + from sknn.mlp import Regressor as MLPR, Classifier as MLPC from sknn.mlp import Layer as L @@ -77,3 +78,12 @@ def test_Classifier(self): a_out = numpy.random.randint(0, 4, (64,)) cross_val_score(MLPC(layers=[L("Softmax")], n_iter=1), a_in, a_out, cv=5) + + +class TestVotingEnsemble(unittest.TestCase): + + def test_SingleVote(self): + a_in, a_out = numpy.random.uniform(0.0, 1.0, (64,16)), numpy.zeros((64,)) + vc = VotingClassifier([('nn1', MLPC(layers=[L("Softmax")], n_iter=1))]) + vc.fit(a_in, a_out) + vc.predict(a_in) From 7d270d5f94522f287cc46a4a720f8062707a132e Mon Sep 17 00:00:00 2001 From: "Alex J. Champandard" Date: Thu, 31 Dec 2015 21:53:13 +0100 Subject: [PATCH 2/2] Voting ensemble seems to work as it is. --- sknn/tests/test_classifier.py | 1 - 1 file changed, 1 deletion(-) diff --git a/sknn/tests/test_classifier.py b/sknn/tests/test_classifier.py index d72098d..2a92ef5 100644 --- a/sknn/tests/test_classifier.py +++ b/sknn/tests/test_classifier.py @@ -54,7 +54,6 @@ def test_PredictBinaryProbability(self): assert_equal(2, c_out.shape[0]) assert_equal(2, a_proba.shape[1]) - assert_equal(1, a_test.ndim) def test_PredictClasses(self): a_in, a_out = numpy.zeros((8,16)), numpy.random.randint(0, 5, (8,))