我正在尝试使用glmnet拟合模型。对于数据输入,我正在使用模型公式将数据转换为sparse.model.matrix格式。我正在尝试取消规范化我希望包含在控件中的变量之一,但我无法使刑罚参数起作用!首先,我不确定向量需要多长时间,模型矩阵的原始变量的每个级别都有列,我是否需要为每个级别指定一个刑罚系数?我相信我都尝试过,较长的惩罚向量似乎无济于事,而较短的惩罚向量会导致收敛误差。代码设置如下:
X <- sparse.model.matrix(model.formula, data)
fit <- glmnet::cv.glmnet(X, y, family = "poisson", type.multinomial = "ungrouped" , penalty.factor = reg.weights)
答案 0 :(得分:0)
是的,您在正确的轨道上。 penalty.factor
的向量长度应与稀疏模型矩阵中的列相同。在下面的示例中,长度应为8。
dim(X)
[1] 32 8
如果您遇到收敛性问题,那么不幸的是这是一个单独的问题,不一定与惩罚因素有关。