Example #1
0
    def test_kfold_cv(self):
        trainer = TrainModelCV([LogisticRegression, classification_error, None, (), {'lam':0.5}],
                       X=self.X, y=self.y, folds=self.folds)
        errors = trainer.run()

        self.assertTrue(np.abs(errors[errors.keys()[0]]['train'] - 0.063340259665816398) < 1e-12)
        self.assertTrue(np.abs(errors[errors.keys()[0]]['test'] - 0.049633305762338022)< 1e-12)
Example #2
0
    def test_aggregate_error(self):
        # test an aggregate error function (that returns more than one value)
        trainer = TrainModelCV([LogisticRegression, TestTrainModelCV.agg_err, None, (), {'lam':0.5}],
                       X=self.X, y=self.y, Xtest=self.X[:50, :], ytest=self.y[:50])
        errors = trainer.run()

        self.assertTrue(np.abs(errors[errors.keys()[0]]['train']['accuracy'] - 0.06) < 1e-8)
        self.assertTrue(np.abs(errors[errors.keys()[0]]['train']['auc'] - 0.99310661764705888) < 1e-8)
Example #3
0
    def test_map_train_model(self):
        trainer = TrainModelCV([LogisticRegression, classification_error, '/tmp/logistic.json', (), {'lam':0.5}], X=self.X, y=self.y)
        errors = trainer.run()

        # load model
        trained_model = LogisticRegression.load_model('/tmp/logistic.json')
        loaded_model_error = classification_error(self.y, trained_model.predict(self.X))

        # check the errors
        self.assertTrue(np.abs(errors[errors.keys()[0]]['train'] - 0.06) < 1e-12)
        self.assertTrue(np.abs(errors[errors.keys()[0]]['train'] - loaded_model_error) < 1e-12)
Example #4
0
    def test_kfold_cv(self):
        trainer = TrainModelCV(
            [LogisticRegression, classification_error, None, (), {
                'lam': 0.5
            }],
            X=self.X,
            y=self.y,
            folds=self.folds)
        errors = trainer.run()

        self.assertTrue(
            np.abs(errors[errors.keys()[0]]['train'] -
                   0.063340259665816398) < 1e-12)
        self.assertTrue(
            np.abs(errors[errors.keys()[0]]['test'] -
                   0.049633305762338022) < 1e-12)
Example #5
0
    def test_aggregate_error(self):
        # test an aggregate error function (that returns more than one value)
        trainer = TrainModelCV([
            LogisticRegression, TestTrainModelCV.agg_err, None, (), {
                'lam': 0.5
            }
        ],
                               X=self.X,
                               y=self.y,
                               Xtest=self.X[:50, :],
                               ytest=self.y[:50])
        errors = trainer.run()

        self.assertTrue(
            np.abs(errors[errors.keys()[0]]['train']['accuracy'] -
                   0.06) < 1e-8)
        self.assertTrue(
            np.abs(errors[errors.keys()[0]]['train']['auc'] -
                   0.99310661764705888) < 1e-8)
Example #6
0
    def test_map_train_model(self):
        trainer = TrainModelCV([
            LogisticRegression, classification_error, '/tmp/logistic.json',
            (), {
                'lam': 0.5
            }
        ],
                               X=self.X,
                               y=self.y)
        errors = trainer.run()

        # load model
        trained_model = LogisticRegression.load_model('/tmp/logistic.json')
        loaded_model_error = classification_error(
            self.y, trained_model.predict(self.X))

        # check the errors
        self.assertTrue(
            np.abs(errors[errors.keys()[0]]['train'] - 0.06) < 1e-12)
        self.assertTrue(
            np.abs(errors[errors.keys()[0]]['train'] -
                   loaded_model_error) < 1e-12)