微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么有必要在 R 中删除用于运行 ridge 和 lasso 的列

如何解决为什么有必要在 R 中删除用于运行 ridge 和 lasso 的列

我正在尝试运行我自己的岭回归/套索,并且我正在根据“统计学习简介”的第 251 页上的示例对我的方法进行建模。我们被告知按如下方式设置模型矩阵:

library(ISLR)
x=model.matrix(Salary∼.,Hitters)[,-1] 
y=Hitters$Salary

我的问题是:为什么需要按照“[,-1]”删除一列

解决方法

我不能确定,因为我看不到其余代码,但 model.matrix() 的目的是重新设计您的输入数据,以便它准备好由回归模型进行处理。它可以将任何因素转换为一组虚拟变量。

当这个函数运行时,它会在 (Intercept) 列中创建一个额外的 1 列,所以我猜他们正在删除这个列,因为后续模型(比如 glm())不需要这个额外的列。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。