Python sklearn 线性回归错误:fit() 缺少 1 个必需的位置参数:'y'"
Posted
技术标签:
【中文标题】Python sklearn 线性回归错误:fit() 缺少 1 个必需的位置参数:\'y\'"【英文标题】:Python sklearn linear regression error: fit() missing 1 required positional argument: 'y'"Python sklearn 线性回归错误:fit() 缺少 1 个必需的位置参数:'y'" 【发布时间】:2021-04-28 19:42:49 【问题描述】:我对 Python 和 scikit-learn 非常陌生。我在使用 scikit-learn 波士顿数据房价数据集时遇到了困难。请在下面找到我的代码。
谢谢!
import numpy as np
import pandas as pd
import scipy.stats as stats
import matplotlib.pyplot as plt
import sklearn
bos = pd.DataFrame(boston.data)
bos.head()
bos.columns = boston.feature_names
bos.head()
boston.target[:5]
bos['PRICE'] = boston.target
bos.head()
from sklearn.linear_model import LinearRegression
X = bos.drop('PRICE', axis = 1)
lm = LinearRegression
LinearRegression.fit
lm.fit(X,bos.PRICE)
TypeError Traceback (most recent call last)
<ipython-input-52-f9496290723b> in <module>
1 LinearRegression.fit
----> 2 lm.fit(X,bos.PRICE)
TypeError: fit() missing 1 required positional argument: 'y'
【问题讨论】:
这能回答你的问题吗? TypeError: fit() missing 1 required positional argument: 'y' 【参考方案1】:您的lm = LinearRegression
缺少括号,因此未调用模型对象构造函数。此外,您没有正确拟合刚刚创建的模型。不需要LinearRegression.fit
行。
尝试以下方法,看看是否有帮助:
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.linear_model import LinearRegression
boston = datasets.load_boston() # loading boston dataset
bos = pd.DataFrame(boston.data) # creating dataframe from loaded data
bos.columns = boston.feature_names
bos['PRICE'] = boston.target
bos.head()
X = bos.drop('PRICE', axis = 1)
lm = LinearRegression() # initializing LinearRegression Model
lm.fit(X,bos.PRICE) # fitting data to our LinearRegression Model
【讨论】:
【参考方案2】:您应该使用lm = LinearRegression()
而不是lm = LinearRegression
。
您可以使用lm.fit?
查看方法的签名。你会看到它是
Signature: lm.fit(self, X, y, sample_weight=None)
所以你的 X 被分配给 self,而 bos.PRICE 被分配给 X,它抱怨没有提供 y。在那里看到 self 应该会给你一个指示,表明调用了错误的方法。
【讨论】:
哇,这很简单。谢谢! 很高兴它有帮助。请帮忙采纳答案,谢谢。以上是关于Python sklearn 线性回归错误:fit() 缺少 1 个必需的位置参数:'y'"的主要内容,如果未能解决你的问题,请参考以下文章