Sklearn NotFittedError:此 LinearRegression 实例尚未拟合

Posted

技术标签:

【中文标题】Sklearn NotFittedError:此 LinearRegression 实例尚未拟合【英文标题】:Sklearn NotFittedError: This LinearRegression instance is not fitted yet 【发布时间】:2019-12-13 19:39:49 【问题描述】:

我正在尝试一个简单的线性回归,我已经尝试过这段代码:

x1=data.iloc[:, 9].values
y1=data.iloc[:,1].values

from sklearn.model_selection import train_test_split
seed=7
x1_train,x1_test,y1_train,y1_test= 
train_test_split(x1,y1,test_size=0.15,random_state=seed)

x1_train=nm.reshape(nm.array(x1_train),(-1,1))

from sklearn.linear_model import LinearRegression
lireg=LinearRegression()
model1=LinearRegression().fit(x1_train,y1_train)

y_pred=lireg.predict(x1_test)

NotFittedError:此 LinearRegression 实例尚未拟合。在使用此方法之前使用适当的参数调用“fit”

请帮忙

【问题讨论】:

尝试“y_pred=model1.predict(x1_test)” 非常感谢詹姆斯。有效。解释为什么我的代码不起作用将有助于理解差异。 如果我的回答有帮助,请告诉我。 "lireg" 从来不适合任何东西,所以它无法预测任何东西。另一方面,“model1”已经拟合了一些数据,所以它可以预测一些值。 【参考方案1】:

这里是您收到此错误的原因。让我们看看以下几行:

lireg=LinearRegression()
model1=LinearRegression().fit(x1_train,y1_train)
y_pred=lireg.predict(x1_test)

这里发生了什么?

您初始化了 2 个名为 LinearRegression 的模型:liregmodel1

对于lireg,您不要调用.fit,但对于model1,您可以。

y_pred=lireg.predict(x1_test) 抛出错误,因为您尝试使用 lireg.predict,但 lireg 未经过训练/拟合。


你只需要这个:

方式一:

from sklearn.linear_model import LinearRegression

lireg=LinearRegression() # initialize the model
lireg.fit(x1_train,y1_train) # fit he model
y_pred=lireg.predict(x1_test) # now predict

方式 2:

from sklearn.linear_model import LinearRegression

lireg=LinearRegression().fit(x1_train,y1_train) # initialize & fit the model
y_pred=lireg.predict(x1_test) # now predict

【讨论】:

非常感谢。这确实可以解释并有很大帮助。【参考方案2】:

model1=LinearRegression().fit(x1_train,y1_train)

在这一行你有错误

答案:

使用 lireg 代替 LinearRegression()

正确的代码是: model1=lireg.fit(x1_train,y1_train)

【讨论】:

感谢您的贡献,但@seralouk 之前的回答中没有什么新内容

以上是关于Sklearn NotFittedError:此 LinearRegression 实例尚未拟合的主要内容,如果未能解决你的问题,请参考以下文章

(已解决)sklearn.exceptions.NotFittedError: This RandomForestRegressor instance is not fitted yet.

(已解决)sklearn.exceptions.NotFittedError: This RandomForestRegressor instance is not fitted yet.

决策树遇到sklearn.exceptions.NotFittedError: XXX instance is not fitted yet. Call 'fit' with appr

使用保存的 sklearn 模型进行预测

运行套索回归方法时出错

加载泡菜 NotFittedError:CountVectorizer - 未安装词汇