首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用nls进行预测,始终返回训练数据集的预测值

使用nls进行预测,始终返回训练数据集的预测值
EN

Stack Overflow用户
提问于 2018-05-29 06:10:54
回答 1查看 360关注 0票数 0

我有4个点的训练集,我使用"nls“对训练集进行拟合,然后预测包含2个点的测试集的响应。然而,“预测”命令总是返回列车集的值。

代码语言:javascript
复制
The code is attached below:

##Following is train set
HD = c(714,715,716.6,717.6)
p_l = c(0.5,0.1,0.05826374, 0.005982334)
##Fitting with nls
raw_data = data.frame(HD,p_l)
exp_fit = nls(p_l~exp(a+b*HD),data = raw_data,trace = T,start = list(a = 0,b 
= 0))
##Following is test set
HD_test = c(718.2,719.17)
p_l_test = predict(exp_fit,newdata = HD_test)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 06:56:55

您需要将数据框或命名列表作为newdata进行传递。

使用与原始预测器(HD)相同的名称。否则,newdata将被视为缺失,并返回原始训练数据中的拟合值。

nls docs

新数据

在其中查找用于预测的变量的命名列表或数据框。如果newdata丢失,则返回原始数据点的拟合值。

代码语言:javascript
复制
HD_test = data.frame(HD = c(718.2,719.17)) # wrap in data frame, name "HD"
p_l_test = predict(exp_fit, newdata = HD_test)

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

https://stackoverflow.com/questions/50573945

复制
相关文章

相似问题

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