在 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 ,它允许您使用给定估计器的输出作为另一个估计器的输入。
对于我的问题,可以使用易于编码的自定义估算器。
我构建了一个带有预处理器和回归器的 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 ,它允许您使用给定估计器的输出作为另一个估计器的输入。
对于我的问题,可以使用易于编码的自定义估算器。