在 sklearn 管道中添加用于回归的预测向量的自定义转换器

Add a custom transformer of the predicted vector for regression in sklearn pipeline

我构建了一个带有预处理器和回归器的 sklearn 管道来解决回归问题。

Regressor = GradientBoostingRegressor()

Model = Pipeline([("preprocessor", xgb_model_preprocessor),
              ("reg", Regressor)])

Model.predict(X_test) 的输出包含一些负值,但我的目标 Y_test 是一个正向量。为了提高我的分数,我想为每个负面预测应用一个非常简单的自定义函数 returns 0。我想直接将其添加到我的管道中。

示例:

Model.predict(X_test) = [5 , 10 , 1  , -2  , 8 , -1 ]

我想要我的新管道 Model_2 以便 :

Model_2.predict(X_test) = [5 , 10 , 1  , 0  , 8 , 0 ]

谁能帮我实现这个目标?

非常感谢您的帮助。

好的,几个月后我得到了答案!

您可以使用 sklearn.ensemble.StackingRegressor ,它允许您使用给定估计器的输出作为另一个估计器的输入。

对于我的问题,可以使用易于编码的自定义估算器。