我正在基于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)
使用reg.predict(x)
。您无需向提供y
值predict
。实际上,训练机器学习模型的目的是让其推断中y
给定输入参数的值x
。
另外,predict
此处的文档说明了predict
仅将其x
作为参数的原因。
您收到错误的原因:
预报()接受2个位置参数,但给了3个
这是因为,当您调用时reg.predic(x)
,python会将其隐式转换为reg.predict(self,x)
,这就是为什么错误告诉您predict()
采用2个位置参数的原因。您称为预测的方式reg.predict(x,y)
将转换为reg.predict(self,x,y)
3个位置参数,而不是2个,这说明了整个错误消息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句