python - 使用自定义函数在 sklearn 中创建管道?
问题描述
如何使用自定义功能创建 sklearn 管道?我有两个功能,一个用于清理数据,另一个用于构建模型。
def preprocess(df):
……………….
# clean data
return df_clean
def model(df_clean):
…………………
#split data train and test and build randomForest Model
return model
所以我使用 FunctionTransformer 并创建了管道
from sklearn.pipeline import Pipeline, make_pipeline
from sklearn.preprocessing import FunctionTransformer
pipe = Pipeline([("preprocess", FunctionTransformer(preprocess)),("model",FunctionTransformer(model))])
pred = pipe.predict_proba(new_test_data)
print(pred)
我知道上面是错误的,不知道如何处理,在管道中我需要先传递训练数据,然后我必须传递 new_test_data?
解决方案
您需要创建自己的类来继承 sklearn 的 BaseEstimator、TransformerMixin。
然后在您自己的类的 fit/transform/fit_transform / predict/predict_prob 等函数中指定您的函数。
推荐阅读
- javascript - jQuery 更新事件和 DOM 事件不适用于弹出标签处理程序
- javascript - Promise.all 然后回调只执行一次
- java - 如何通过 POST 获取列表
- python - 尝试加入 2 个数据框,并将某些数据作为数组存储在一个单元格中
- ios - 当它们几乎没有区别时,我应该重用 tableView 单元格吗?
- javascript - jQuery REST PUT 请求在我的代码中不起作用?
- excel - Excel 2016 Power Query - 从 Oracle 数据字典中获取数据
- html - W3schools CSS 联系表格与另一个 div 合并
- javascript - 将 MS Word 粘贴为文本,但保留一些样式 Jquery
- c# - EF 代码第一个问题。它创建新对象