def test_predict_transform(self): predict_transformer = FeatureUnion([ ("identity", FunctionTransformer(None)), ("log10", FunctionTransformer(numpy.log10)) ]) pipeline = PMMLPipeline([("estimator", DummyRegressor())], predict_transformer = predict_transformer) X = DataFrame([[1, 0], [2, 0], [3, 0]], columns = ["X1", "X2"]) y = Series([0.5, 1.0, 1.5], name = "y") pipeline.fit(X, y) y_pred = [1.0, 1.0, 1.0] y_predt = [1.0, 1.0, numpy.log10(1.0)] self.assertEqual(y_pred, pipeline.predict(X).tolist()) self.assertEqual([y_predt for i in range(0, 3)], pipeline.predict_transform(X).tolist())
def sin(x): x = numpy.pi*(x - 0.5) return numpy.sin(x) def tanh(x): x = 2 * numpy.pi * (x - 0.5) return numpy.tanh(x) train = numpy.linspace(0, 1, 9) test = numpy.linspace(0.01, 0.99, 12) X = DataFrame(test.reshape(-1, 1), columns = ["x1"]) store_csv(X, "BSpline") for fun in [gaussian, sin, tanh]: name = fun.__name__.capitalize() + "BSpline" bspline = make_interp_spline(train, fun(train), k = 3) regressor = LinearRegression() regressor.coef_ = numpy.array([1]) regressor.intercept_ = numpy.array([0]) pipeline = PMMLPipeline([ ("regressor", regressor) ], predict_transformer = BSplineTransformer(bspline)) store_pkl(pipeline, name) y = DataFrame(pipeline.predict_transform(X), columns = ["y", "bspline(predict(y))"]) store_csv(y, name)