Ejemplo n.º 1
0
    def test_fit_model_gradient_boosting_classifier_1(self):
        """
        This is a test case without normalization.

        """
        from sklearn.ensemble import GradientBoostingClassifier

        model = GradientBoostingClassifier(n_estimators=30,
                                           max_depth=1,
                                           random_state=0)
        driver = model_driver.ModelDriver(
            TestModelDriver.variable_definition_for_test, model=model)

        driver.fit(TestModelDriver.X, TestModelDriver.Y)

        predicted = driver.predict(TestModelDriver.X, make_copy=True)

        expected = [
            0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
            0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
            0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,
            2., 2., 1., 2., 1., 2., 1., 1., 1., 1., 1., 1., 1., 1., 2., 1., 1.,
            1., 1., 1., 1., 2., 1., 1., 1., 1., 2., 1., 1., 1., 1., 1., 1., 1.,
            1., 2., 1., 1., 1., 1., 2., 1., 1., 1., 1., 1., 1., 1., 1., 2., 1.,
            2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 1., 2., 2., 2., 2., 2.,
            1., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2.,
            2., 2., 2., 2., 2., 2., 1., 2., 2., 2., 2., 2., 2., 1.
        ]

        error_cnt = sum(expected[ii] != predicted[ii]
                        for ii in xrange(len(predicted)))
        self.assertLess(error_cnt, 20)
Ejemplo n.º 2
0
    def test_fit_model_extrememly_randomized_trees_1(self):
        """
        This is a test case without normalization.

        """
        from sklearn.ensemble import ExtraTreesClassifier

        model = ExtraTreesClassifier(n_estimators=30,
                                     max_depth=None,
                                     min_samples_split=1,
                                     random_state=0)
        driver = model_driver.ModelDriver(
            TestModelDriver.variable_definition_for_test, model=model)

        driver.fit(TestModelDriver.X, TestModelDriver.Y)

        predicted = driver.predict(TestModelDriver.X, make_copy=True)

        expected = [
            0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
            0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
            0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,
            2., 2., 1., 2., 1., 2., 1., 1., 1., 1., 1., 1., 1., 1., 2., 1., 1.,
            1., 1., 1., 1., 2., 1., 1., 1., 1., 2., 1., 1., 1., 1., 1., 1., 1.,
            1., 2., 1., 1., 1., 1., 2., 1., 1., 1., 1., 1., 1., 1., 1., 2., 1.,
            2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 1., 2., 2., 2., 2., 2.,
            1., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2.,
            2., 2., 2., 2., 2., 2., 1., 2., 2., 2., 2., 2., 2., 1.
        ]

        error_cnt = sum(expected[ii] != predicted[ii]
                        for ii in xrange(len(predicted)))
        self.assertLess(error_cnt, 20)
Ejemplo n.º 3
0
    def test_fit_model_random_forest_1(self):
        """
        This is a test case without normalization.
        """
        from sklearn.ensemble import RandomForestClassifier

        model = RandomForestClassifier(n_estimators=30)
        driver = model_driver.ModelDriver(
            TestModelDriver.variable_definition_for_test, model=model)

        driver.fit(TestModelDriver.X, TestModelDriver.Y)

        predicted = driver.predict(TestModelDriver.X, make_copy=True)

        # print 'predicted is ', predicted

        expected = [
            0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
            0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
            0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,
            2., 2., 1., 2., 1., 2., 1., 1., 1., 1., 1., 1., 1., 1., 2., 1., 1.,
            1., 1., 1., 1., 2., 1., 1., 1., 1., 2., 1., 1., 1., 1., 1., 1., 1.,
            1., 2., 1., 1., 1., 1., 2., 1., 1., 1., 1., 1., 1., 1., 1., 2., 1.,
            2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 1., 2., 2., 2., 2., 2.,
            1., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2.,
            2., 2., 2., 2., 2., 2., 1., 2., 2., 2., 2., 2., 2., 1.
        ]

        error_cnt = sum(expected[ii] != predicted[ii]
                        for ii in xrange(len(predicted)))
        self.assertLess(error_cnt, 20)
Ejemplo n.º 4
0
    def test_fit_model_pybrain_neural_network_1(self):
        """
        This is a test case without normalization.
        """
        def separate(number):
            if number <= 0.5:
                return 0
            elif number <= 1.5:
                return 1
            else:
                return 2

        from dstools.models.pybrain_wrapper import PyBrainNN, PyBrainNNError

        model = PyBrainNN(learning_rate=0.1,
                          maxiterations=200,
                          lam=0.0,
                          args=(2, 3, 1),
                          kwargs={
                              'fast': True,
                              'bias': True
                          })
        driver = model_driver.ModelDriver(
            TestModelDriver.variable_definition_for_test, model=model)

        driver.fit(TestModelDriver.X, TestModelDriver.Y)

        predicted = driver.predict(TestModelDriver.X, make_copy=True)

        predicted_integers = [separate(item) for item in predicted]

        # The following is the observed values.
        expected = [
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
            2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
            2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
        ]

        error_cnt = sum(expected[ii] != predicted_integers[ii]
                        for ii in xrange(len(predicted)))
        self.assertLess(error_cnt, 120)
Ejemplo n.º 5
0
    def test_fit_model_lr_2(self):
        """
        This is a test case without normalization.
        """
        normalized_iris_1st_feature = {
            'name': 'iris_1st_feature',
            'transform': lambda x: x,
            'normalization': True
        }
        normalized_iris_2nd_feature = {
            'name': 'iris_2nd_feature',
            'transform': lambda x: x,
            'normalization': True
        }
        variable_definition_local_for_test = {
            'independent_variables':
            [normalized_iris_1st_feature, normalized_iris_2nd_feature],
            'dependent_variable': {
                'name': 'iris_target',
                'transform': lambda x: x,
                'normalization': False
            },
            'data_schema':
            [normalized_iris_1st_feature, normalized_iris_2nd_feature]
        }

        model = linear_model.LogisticRegression(C=1e5)
        driver = model_driver.ModelDriver(variable_definition_local_for_test,
                                          model=model)

        driver.fit(TestModelDriver.X, TestModelDriver.Y)

        predicted = driver.predict(TestModelDriver.X, make_copy=True)

        expected = [
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2,
            1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
            1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2,
            2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2,
            2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1
        ]

        self.assertListEqual(list(predicted), expected)
Ejemplo n.º 6
0
    def test_fit_model_lr_1(self):
        """
        This is a test case without normalization.
        """
        model = linear_model.LogisticRegression(C=1e5)
        driver = model_driver.ModelDriver(
            TestModelDriver.variable_definition_for_test, model=model)

        driver.fit(TestModelDriver.X, TestModelDriver.Y)

        predicted = driver.predict(TestModelDriver.X, make_copy=True)

        expected = [
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2,
            1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
            1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2,
            2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2,
            2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1
        ]

        self.assertListEqual(list(predicted), expected)
Ejemplo n.º 7
0
    def test_fit_model_svm_1(self):
        """
        This is a test case without normalization.
        """
        model = svm.LinearSVC(C=1e5, loss='l1')
        driver = model_driver.ModelDriver(
            TestModelDriver.variable_definition_for_test, model=model)

        driver.fit(TestModelDriver.X, TestModelDriver.Y)

        predicted = driver.predict(TestModelDriver.X, make_copy=True)

        expected = [
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 2, 2, 2, 1, 2, 2, 2, 1, 2, 0, 1, 2, 1, 2, 2, 2,
            2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 0, 2, 2, 1,
            2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2,
            2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
            2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
        ]

        self.assertListEqual(list(predicted), expected)