2017-10-06 8 views
0

"Hand on Machine learning"の質問4(第2章)で作業中にこのエラーが発生しました。これは、「完全なデータ準備と最終予測を行う単一のパイプラインを作成してみてください」という質問です。このソリューションはGithubのリンクで入手できますが、解決策は私にタイトルで言及されたエラーを与えています。私は私の例として住宅データを使用しました。私を助けてください。タイプエラー:fit()は2つの位置引数をとりますが、3が与えられました

私は、このコマンドを書き、それが次のエラー解雇:私はGitHubの Solution of Question 2 from Github

しかし、このISN」から解決策を添付したい

TypeError: fit() takes 2 positional arguments but 3 were given 

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) 

がエラーを私のために働いています。 :(

+0

フルコードをアップロードできますか? –

答えて

0

警告が、私はひどくここに簡素化するつもりですが、私はこれが役立つことを願っています。Pythonで

、あなたがオブジェクトの関数を呼び出す場合、オブジェクト自体は、常に最初の引数として渡されます(それは、静的またはクラスメソッドである場合を除く)。これは通常、我々はselfを呼び出し、パラメータによって捕獲される。

だから、あなたはobject.function()を呼び出す場合、あなたはすなわちobjectfunctionに自分自身を引数に渡している。

class C: 
    def f(self): 
     print(self) 

o = C() 
o.f()   # <__main__.C object at 0x7f1049993f28> 
o.f('hello') # TypeError: f() takes 1 positional argument but 2 were given 

あなたのケースでは、prepare_select_and_predict_pipeline.fit(housing, housing_labels)を呼び出しているので、関数fit3つの引数を受け取ります:prepare_select_and_predict_pipelinehousingおよびhousing_labelsです。

fitメソッドの定義を確認すると、おそらく実際にはの2つの引数が必要です。私は最初のものを推測していますselfと呼ばれるでしょう。

+0

この情報をお寄せいただきありがとうございますが、今私が何をすべきかを教えてください。 – Milan

+0

開始するには、関数呼び出しの引数の1つを削除します。ドキュメンテーションやソースコードであなたが呼んでいる 'fit'関数をチェックしたいと思うかもしれません。 –

+0

ドキュメントを調べます。ありがとうございました – Milan

関連する問題