def test_pipeline_subclass_correctly_supports_predict_proba(self):
        X, y = generate_dataset_1()

        pipeline = Pipeline([LogisticRegressionBinaryClassifier()])
        pipeline.fit(X, y)
        orig_result = pipeline.predict_proba(X)

        pipeline = CustomPipeline([LogisticRegressionBinaryClassifier()])
        pipeline.fit(X, y)
        new_result = pipeline.predict_proba(X)

        self.assertTrue(np.array_equal(orig_result, new_result))
示例#2
0
    def test_pass_predict_proba_from_load_model(selfs):
        pipeline = Pipeline([LogisticRegressionBinaryClassifier()])
        pipeline.fit(X_train, y_train)
        probs1 = pipeline.predict_proba(X_test)
        sum1 = probs1.sum().sum()
        (fd, modelfilename) = tempfile.mkstemp(suffix='.model.bin')
        fl = os.fdopen(fd, 'w')
        fl.close()
        pipeline.save_model(modelfilename)

        pipeline2 = Pipeline()
        pipeline2.load_model(modelfilename)
        probs2 = pipeline2.predict_proba(X_test)
        sum2 = probs2.sum().sum()
        assert_equal(sum1, sum2,
                     "model probabilities don't match after loading model")
示例#3
0
    def test_pass_predict_proba_multiclass_with_pipeline_adds_classes(self):
        clf = FastLinearClassifier(number_of_threads=1)
        pipeline = Pipeline([clf])
        pipeline.fit(X_train_3class, y_train_3class)

        expected_classes = {'Blue', 'Green', 'Red'}
        assert_equal(set(clf.classes_), expected_classes)
        assert_equal(set(pipeline.classes_), expected_classes)

        s = pipeline.predict_proba(X_test_3class).sum()
        assert_almost_equal(s,
                            38.0,
                            decimal=4,
                            err_msg=invalid_predict_proba_output)

        assert_equal(set(clf.classes_), expected_classes)
        assert_equal(set(pipeline.classes_), expected_classes)