首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cross_val_predict进行预测

使用cross_val_predict进行预测
EN

Stack Overflow用户
提问于 2018-03-05 01:23:37
回答 2查看 1.3K关注 0票数 0

我有下面的代码,我想在线性回归模型中使用k-fold cross validation

代码语言:javascript
复制
kf = KFold(n_splits=100)
predi = cross_val_predict(model, train[columns], train[target], cv = kf)
predi = pandas.Series(predi)

model.fit(data[columns], data[target])
pred_test = model.predict(test[columns])
print(mean_squared_error(pred_test, test[target]))

但是,我不确定代码是否做了我希望它做的事情。具体地说,我不确定model.fit部分。它甚至使用了交叉验证吗?

我不确定为什么这样计算会比没有交叉验证产生更差的结果。

EN

回答 2

Stack Overflow用户

发布于 2018-03-05 11:11:57

不是的。CV仅用于检查模型在数据(或数据的不同部分)上的性能。

当您调用fit()时,它将适合当时提供的全部数据,而交叉验证仅使用部分数据(每次迭代保留1个折叠项)。因此,这种数据差异可能会导致估计器的性能更好或更差。

票数 0
EN

Stack Overflow用户

发布于 2018-10-04 21:08:14

model.fit没有任何划分数据的功能。它只处理成本函数最小化问题,并创建一个模型(即查找参数)。

此外,如果你认为你创建了一个循环,你在每次迭代中划分数据,并一次又一次地调用model.fit,你就得到了更通用的模型,那么这是不可能的,因为在线性回归模型对象上第二次调用fit时,它会忘记旧数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49098155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档