【发布时间】:2021-06-30 10:33:27
【问题描述】:
其实这个疑问更像是——“为什么这段代码能正常工作?”。
我正在从教科书中解决一个问题。具体来说,问题是构建一个具有数据准备阶段(删除 NA 值、执行特征缩放等)和预测阶段的管道,该阶段涉及在转换后的数据集上训练的预测器并返回其预测。
在这里,我们使用了支持向量回归模块 (sklearn.svm.svr)。
我尝试了我的一些代码,但没有成功。于是查了一下教科书作者提供的实际解决方案——
prepare_select_and_predict_pipeline = Pipeline([
('preparation', data_prep),
('svm_reg', SVR(kernel='rbf',C=30000,gamma='scale'))
])
prepare_select_and_predict_pipeline.fit(x_train,y_train)
some_data = x_train.iloc[:4]
print("Predictions for a subset of Training Set:",prepare_select_and_predict_pipeline.predict(some_data))
我尝试了这段代码,它确实按预期工作。 它如何才能正常工作?我的主要反对意见是:
-
我们只有 fit 数据集,但我们实际上在哪里 改造了吗?我们不会在任何地方调用 transform() 函数...
-
另外,我们如何在这个管道中使用 predict() 函数? SVR 可能是这条管道的一部分,但其他变压器也是如此, 而且它们没有 predict() 函数。
提前感谢您的回答!
【问题讨论】:
标签: python scikit-learn-pipeline