Sklearn错误:predict(x,y)取2个位置参数,但给出3个

GD_*_*D_N 7 scikit-learn sklearn-pandas

我正在开发一个关于sklearn的多元回归分析,我仔细查看了文档.当我运行该predict()函数时,我得到错误: predict()取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)
Run Code Online (Sandbox Code Playgroud)

Moh*_*OUI 13

使用reg.predict(x).您不需要提供ypredict.实际上,训练机器学习模型的目的是让它推断出y给定输入参数的值x.

此外,predict 此处的文档解释了predictx作为参数.

你得到错误的原因:

predict()需要2个位置参数,但是给出3个

是因为,当你调用时reg.predic(x),python会隐式地将其转换为reg.predict(self,x),这就是错误告诉你predict()需要2个位置参数的原因.您调用预测的方式reg.predict(x,y)将被转换为reg.predict(self,x,y)3个位置参数将被用来代替2,这解释了整个错误消息.

  • @ charlesreid1做到了. (2认同)