如何使用样条/平滑回归预测新数据

机器算法验证 回归 机器学习 预测模型 样条
2022-03-24 23:00:52

任何人都可以帮助对在使用平滑/样条线作为预测模型时如何对新数据进行预测进行概念性解释吗?例如,给定一个使用 R 包中创建的模型gamboostmboost使用 p 样条,如何对新数据进行预测?从训练数据中使用了什么?

假设自变量 x 有一个新值,我们要预测 y。是否使用训练模型时使用的结或 df 将样条创建公式应用于此新数据值,然后将训练模型的系数应用于输出预测?

这是 R 的一个示例,对于新数据 mean_radius = 15.99,预测在概念上输出 899.4139 是什么?

#take the data wpbc as example
library(mboost)
data(wpbc)

modNew<-gamboost(mean_area~mean_radius, data = wpbc, baselearner = "bbs", dfbase = 4, family=Gaussian(),control = boost_control(mstop = 5))
test<-data.frame(mean_radius=15.99)
predict(modNew,test)
1个回答

计算预测的方式是这样的:

从原始拟合开始,您的结位置分布mean_radius在训练数据的范围内。连同 B 样条基的度数(默认情况下为三次mboost),这些节点位置定义了 B 样条基函数的形状。默认 mboost是有 20 个内部结,它定义了 24 个三次 B 样条基函数(不要问...)。让我们称这些基函数你的协变量 ``mean_radius`` 的效果简单地表示为 这是一个非常巧妙的技巧,因为它减少了估计未指定函数用于估计线性回归权重的更简单的问题Bj(x);j=1,,24x=

f(x)=j24Bj(x)θj
f(x)θj与合成协变量的集合相关联。Bj(x)

那么预测并不那么复杂:给定估计的系数,我们需要评估用于预测数据为此,我们只需要定义原始数据的基函数的节点位置。然后我们得到预测值 θ^jBj();j=1,,24xnew

f^(xnew)=j24Bj(xnew)θ^j.

处估计的系数实际上是迭代中系数更新的总和。如果您真的想掌握细节,请查看您从中获得的输出mstop1,,mstop

bbs(rnorm(100))$dpp(rep(1,100))$predict,

然后从那里去探索。例如,

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), newX)

来电

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), Xfun)

评估Bj()xnew