我有4个点的训练集,我使用"nls“对训练集进行拟合,然后预测包含2个点的测试集的响应。然而,“预测”命令总是返回列车集的值。
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)
发布于 2018-05-29 06:56:55
您需要将数据框或命名列表作为newdata
进行传递。
使用与原始预测器(HD
)相同的名称。否则,newdata
将被视为缺失,并返回原始训练数据中的拟合值。
新数据
在其中查找用于预测的变量的命名列表或数据框。如果newdata丢失,则返回原始数据点的拟合值。
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
https://stackoverflow.com/questions/50573945
复制相似问题