我在处理“动手机器学习”一书中的问题4(第2章)时遇到了这个错误。这就是问题“尝试创建一个单独的管道来进行完整的数据准备和最终预测”。该解决方案在Github link中可用,但该解决方案给出了标题中提到的错误。我以住房数据为例。请帮帮我。
我编写了此命令,它引发了以下错误:
prepare_select_and_predict_pipeline = Pipeline([
('preparation', full_pipeline),
('feature_selection', TopFeatureSelector(feature_importances, k)),
('svm_reg', SVR(**rnd_search.best_params_))
])
prepare_select_and_predict_pipeline.fit(housing,housing_labels)
错误:
TypeError: fit() takes 2 positional arguments but 3 were given
我想附上Github的解决方案 Solution of Question 2 from Github
但这对我不起作用。:(一)
警告,我将在这里大大简化,但我希望这会有帮助。
在Python中,如果对对象调用函数,则对象本身始终作为第一个参数传递(除非它是静态或类方法)。这通常由我们称为
self
的参数捕获。所以,如果您调用
object.function()
,您将向function
传递一个参数,即object
本身。在您的例子中,您调用的是
prepare_select_and_predict_pipeline.fit(housing, housing_labels)
,因此传递的是函数fit
三个参数:prepare_select_and_predict_pipeline
、housing
和housing_labels
。如果检查
fit
方法的定义,您可能会发现它实际上只需要两个参数。我猜第一个将被称为self
。相关问题 更多 >
编程相关推荐