求助一个线性回归模型预测的问题

求助一个线性回归模型预测的问题,第1张

求助一个线性回归模型预测的问题,第2张

Model 是一个训练好的线性回归模型,Features 是待预测的样本集,在调试的时候发现对全部样本进行预测和对部分样本进行预测,同样的样本预测值略有不同,为什么?怎么解决?
两个语句如下,同样的样本,前一百个样本的预测值会有所不同,并且越往后差别越大
Predict1 = Model.predict( Features )
Predict2 = Model.predict( Features[ 0:100, : ] )

环境:Win7 X64,anaconda 3.5.1 ----------------------- 以下是精选回复-----------------------

答:这个是普通的线性回归,X 每个取值是独立的,还是类似时间序列 X 的值之间是相关的?
答:进行模型调优
答:模型是基于什么数据集训练的?待预测的样本集是什么类型的数据?
如果是边界开放的数据集,什么模型也是没用的。
线性回归预测本来就只能解决边界封闭的数据的问题。
答:时间序列模型的样本之间是相关的,改变样本集会影响单个样本的预测结果
答:所谓训练好的模型是说当前模型已经通过训练数据固定了超参数,你使用不同(多)的输入给模型,得到不同的输出,有什么问题么。即使股票市场规则写明了,不同人掌握的信息量不一样,做出的决策就有区别,不太清楚你想解决什么。
答:挺怪的,不如直接说你用了什么模型,以及预测偏差有多大
答:的确奇怪,正常的线性回归不会发生这种事儿~
建议说的更详细点。
LS 一堆连问题都没明白的就别说话了……
答:Model 是什么模型。
----

盲猜其实 Model 不是“线性回归”,是深度回归模型。并且可能用了 Batch Normalization 这种会让训练样本之间产生关联的东西,并且忘了关掉 training 模式 hhh
答:既然是线性回归模型,你可以把模型里面的参数全部打出来然后自己算一遍看看是怎么回事吧
答:如果数值差异小于 1e-5 ,可能是数值计算实现的逻辑不同。
否则应该是用错了。
答:统一回复楼上诸位,可能我没有描述清楚:Features 是有几千个样本的测试样本集,每个样本大约有 200 个特征,各样本都是独立的,Model 确实是已经训练好的线性回归模型。我用 Predict1 = Model.predict( Features )这条语句先预测这几千个样本,然后截取头 100 个查看一下预测结果。然后用 Predict2 = Model.predict( Features[ 0:100, : ] )这条语句先截取头 100 个样本,再预测这 100 个样本。按道理说两次的结果应是一样的。但事实是,头几个样本的预测值几乎是一模一样的,但后来就有差别了,并且差别越来越大,到第 100 个样本时以是百分之几的差别。我不知道为什么会是这样。
答:「 Model 确实是已经训练好的线性回归模型」说明不了问题。
把你 Model 从定义到 fit 的代码发出来看看。
答:回 Albertni:谢谢你,我按照你的建议试一试。
回 ladychili:模型的定义和训练都是调用的 sklearn 中的标准函数,分别是:
Model = sklearn.linear_model.LinearRegression( n_jobs=CpuNum )#创建 Model ,CpuNum 是 Cpu 的线程数
Model.fit( TrainFeatures, TrainYValues )#训练模型,两个参数分别是训练集的特征和真实值
Predict1 = Model.predict( Features )#此两句是利用训练好的模型进行预测
Predict2 = Model.predict( Features[ 0:100, : ] )
答:Model.predict( Features[ 0:1, : ] )
Model.predict( Features[ 1:2, : ] )
Model.predict( Features[ 2:3, : ] )
Model.predict( Features[ 3:4, : ] )
Model.predict( Features[ 5:6, : ] )
Model.predict( Features[ 6:7, : ] )
Model.predict( Features[ 7:8, : ] )
Model.predict( Features[ 8:9, : ] )
这九个结果与
Model.predict( Features[ 0:9, : ] )
一样吗?
答:如果是线性回归,你不妨直接把训练好的 weights 取出来,自己乘一下你的 features
答:我无法复现你的问题,建议把全部的代码和输出发上来
中间输出
print(f"train_x shape is : {train_x.shape}")

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 求助一个线性回归模型预测的问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情