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))
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")
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)