我想使用glmnet
或lm.ridge
在R中进行岭回归。
我需要使用log(Y)
cost ~ size + weight ⇒ log(cost) ~ size + weight
但是,我发现glm
或glmnet
没有像lm.ridge
这样的链接。
有关此问题的任何想法吗?
答案 0 :(得分:0)
对?glmnet
函数使用 alpha 输入参数(值为0)。正如文档所说:
alpha = 1是套索惩罚,alpha = 0是岭惩罚。
尝试以下内容:
glmnet(x=cbind(size, weight), y=log(cost), alpha=0, family='gaussian')
或可能与 poission regression
glmnet(x=cbind(size, weight), y=cost, alpha=0, family='poission')
如果您的输入数据不是太大,您可以使用公式solve(t(X)%*%X + λ*I)%*%(t(X)%*%y)
直接从训练数据中通过岭回归计算学习权重,其中 X 是您的输入变量矩阵, y 是响应变量, I 是单位矩阵,您可以使用交叉验证从<了解lambda参数的最佳值em>坚持数据集。