LASSO 真的适用于二元分类问题吗?

机器算法验证 r 分类 套索 网络
2022-04-08 12:48:07

我看到一个使用以下数据的帖子:

library(glmnet)

age     <- c(4, 8, 7, 12, 6, 9, 10, 14, 7) 
gender  <- as.factor(c(1, 0, 1, 1, 1, 0, 1, 0, 0))
bmi_p   <- c(0.86, 0.45, 0.99, 0.84, 0.85, 0.67, 0.91, 0.29, 0.88) 
m_edu   <- as.factor(c(0, 1, 1, 2, 2, 3, 2, 0, 1))
p_edu   <- as.factor(c(0, 2, 2, 2, 2, 3, 2, 0, 0))
f_color <- as.factor(c("blue", "blue", "yellow", "red", "red", "yellow", 
                       "yellow", "red", "yellow"))
asthma <- c(1, 1, 0, 1, 0, 0, 0, 1, 1)

xfactors <- model.matrix(asthma ~ gender + m_edu + p_edu + f_color)[, -1]
x        <- as.matrix(data.frame(age, bmi_p, xfactors))

# Note alpha=1 for lasso only and can blend with ridge penalty down to
# alpha=0 ridge only.
glmmod <- glmnet(x, y=as.factor(asthma), alpha=1, family="binomial")

# Plot variable coefficients vs. shrinkage parameter lambda.
plot(glmmod, xvar="lambda")

似乎他们正在对二分变量进行 LASSO 回归。我想知道这是否有效?如果是这样,他们如何确保 Y 变量在问题的上下文中有意义?

1个回答

这是有效的。请注意family="binomial"适用于分类问题的论点。正常的套索回归问题将使用高斯链接函数。

在此设置中,它允许您通过优化二项式似然性同时对参数估计值施加套索惩罚来估计二项式 GLM 的参数。在这里,二分法的反应非常好。

这很有用,因为它允许特征选择或参数收缩以避免过度拟合。