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'"的主要内容,如果未能解决你的问题,请参考以下文章

Sklearn拟合线性回归[关闭]

通俗得说线性回归算法线性回归实战

python sklearn逻辑回归怎么调参

使用 Sklearn 的简单线性回归。适合()不工作

当 p > n 时,sklearn 如何进行线性回归?

sklearn—LinearRegression,Ridge,RidgeCV,Lasso线性回归模型简单使用