首页 > 解决方案 > 使用 glmnet 的逻辑回归 - 输入数据的结构

问题描述

我正在尝试将 Ridge 和 Lasso 回归应用于逻辑回归模型,并且正在努力理解 x 和 y 输入所需的结构。我对 R 很陌生,所以很抱歉,我希望这很清楚。我相信我们正在使用 x 中的列中的值来预测 y 中的结果

对于 x 我有七列,每列都是分类数据(作为因素)。整个 x 是一个数据框,包含 7 个变量的 9000 个观测值,每个变量都是一个具有不同水平的因子。这出现在数据下的环境中

对于 y,它是一组结果 - “0”或“1” - 在环境中显示为 Values,表示 y 是一个因子,包含 2 个级别“0”“1”,也有 9000 个值

努力找出“结构 x 和 y 需要是什么才能使以下内容适用于逻辑模型”

alpha0.fit <- cv.glmnet(x, y , type.measure="deviance", alpha=0, family="binomial")

感激地收到任何想法或建议。

标签: rlogistic-regressionglmnet

解决方案


您可以使用评论中建议的虚拟编码,或者您可以使用glmnetUtils它来处理这个问题:

library(glmnetUtils)
x = data.frame(x1 = sample(c("A","B","C"),9000,replace=TRUE),
               x2 = sample(c("D","E"),9000,replace=TRUE),
               x2 = sample(c("F","G","H"),9000,replace=TRUE)
               )

y = factor(sample(0:1,9000,replace=TRUE))

fit = cv.glmnet(y ~ .,data=data.frame(x,y),family="binomial",alpha=0)

推荐阅读