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
的模型:lireg
和 model1
对于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