R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化
  MFqKcJmbshKy 2023年11月05日 70 0

本文将关注R语言中的LASSO(Least Absolute Shrinkage and Selection Operator)惩罚稀疏加法模型(Sparse Additive Model,简称SPAM)。SPAM是一种用于拟合非线性数据的强大工具,它可以通过估计非线性函数的加法组件来捕捉输入变量与响应变量之间的复杂关系。

通过本文,我们将展示如何帮助客户在R语言中使用LASSO惩罚稀疏加法模型(SPAM)来拟合非线性数据,并进行相应的可视化分析。

本文提供了一个代码来设置、拟合和可视化加法模型。数值特征会自动使用样条基函数进行扩展。这个基本思想最早是由Ravikumar等人在2009年提出的,他们称之为SPAM,即稀疏加法模型。最初的提议涉及到组套索lasso惩罚,但grpreg的任何惩罚函数都可以代替。基本用法如下所示。

非线性数据:

R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化_拟合

 

 

dim(Data$X)
# [1] 1000   16

矩阵包含 16 个数字特征。

生成的对象是一个列表,其中包含扩展矩阵和分组分配,以及一些内部函数所需的元数据。使用具有三个自由度的自然三次样条曲线。

现在可以将扩展后的矩阵传递给 :grpreg()

 

 

fit <- grpreg

请注意,在这种情况下不必传递分组信息,因为分组信息包含在对象中。

 

 

plot_spline(fit,

偏残差也可包含在这些图中:

 

 

plot_splinpartial=TRUE)

R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化_交叉验证_02

默认情况下,这些图的居中值为 x(的平均值(其中 x表示正在绘制的特征)的平均值为零时,y值为零。另一种情况是,如果指定了plot_spline()x,则将绘制一幅纵轴代表模型预测值的曲线图,所有其他特征都固定为平均值:

 

 

plot_spline(fit, "V02, type='conditional')

在比较这两幅图时,请注意总体轮廓是相同的,唯一不同的是纵轴的值。下面是前 9 个系数的曲线图:

R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化_数据_03

 

 

for (i in 1:9) ploline(fit

R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化_交叉验证_04

在生成模型中,变量 3 和 4 与结果呈线性关系,变量 1、2、5 和 6 呈非线性关系,而所有其他变量均不相关。稀疏加法模型很好地捕捉到了这一点。

进行交叉验证(默认情况下会绘制出使交叉验证误差最小的拟合结果):

 

 

cvfit <- cv.grp
plot_line

R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化_交叉验证_05

最后,这些工具还可用于生存模型和 glm 模型。在这里,所有绘图都以线性预测尺度返回,残差为偏差残差。


R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化_拟合_06

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 1.若依中的provider 下一篇: Calico 基础
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
MFqKcJmbshKy