2017-10-03 8 views
2

私はsklearnで多変量回帰分析を構築しています。 predict()関数を実行すると、エラーが発生します。predict()は2つの位置引数をとりますが、3が与えられました。sklearnエラー:predict(x、y)は2つの位置引数をとりますが、3つは与えられました

Xはデータフレーム、yは列です。私は配列/行列にデータフレームを変換しようとしたが、まだエラーが発生します。

xとyの配列を示すスニペットを追加しました。

reg.coef_ 
reg.predict(x,y) 

x_train=train.drop('y-variable',axis =1) 
y_train=train['y-variable'] 

x_test=test.drop('y-variable',axis =1) 
y_test=test['y-variable'] 


x=x_test.as_matrix() 
y=y_test.as_matrix() 

reg = linear_model.LinearRegression() 
reg.fit(x_train,y_train) 

reg.predict(x,y) 

答えて

4

reg.predict(x)を使用してください。 yの値をpredictに指定する必要はありません。実際、機械学習モデルを訓練する目的は、入力パラメータがxの場合、yという値を推測させることです。

また、predicthereのドキュメントでは、predictは、パラメータとしてxのみが必要であると説明しています。

あなたがエラーを取得する理由:あなたはreg.predic(x)を呼び出すときに、Pythonは暗黙のうちにエラーがpredict()は2つの位置引数を取ることを語っている理由です、reg.predict(self,x)にこれを翻訳します、ので

predict() takes 2 positional arguments but 3 were given

です 。あなたが予測する方法は、reg.predict(x,y)reg.predict(self,x,y)に変換されます。したがって、2の代わりに3つの位置引数が使用され、エラーメッセージ全体が説明されます。

+0

@GD_N回答があれば受け入れ/投票することを検討してください:) – MedAli

+0

投票には15の評判が必要です:( –

+0

@GD_N回答を受け入れるには、緑色のチェックマークをクリックしますそれは投票をすることと同じです)質問を閉じて、他の人にもっと役立つようにしてください。[誰かが私の質問に答えるときに私はどうすればいいですか?](https://stackoverflow.com/help/someone-answers) – charlesreid1

1

テストセット全体をテストするときは、そのテストセットにラベルがないものとみなされます。あなたのモデルが一般化できる方法を見極めるためにテストしているので、実際のラベルと予測を比較します。予測する場合は、X変数のみを使用します。

関連する問題