如何处理LASSO中的分类预测变量
我运行的LASSO具有一些分类变量预测变量和一些连续变量预测变量。我对分类变量有疑问。我了解的第一步是将它们分成假人,对它们进行标准化以进行公平的惩罚,然后回归。处理虚拟变量有几种选择: 包括每个因素中除一个假人以外的所有假人,将其作为参考水平。虚拟系数的解释是相对于排除的“参考”类别而言的。截距现在是参考类别的平均响应。 将每个因素中的变量分组,以便将它们全部排除或全部排除。我相信这就是@Glen_b 在这里建议的内容: 通常,是的,您将所有因素放在一起。有几个R软件包可以做到这一点,包括glmnet 包括各个层面,如经@Andrew中号建议在这里: 您可能还需要更改默认的对比功能,默认情况下,该功能不使用每个因子的一个级别(处理编码)。但是由于套索罚分,对于可识别性而言,这不再是必需的,并且实际上使所选变量的解释更加复杂。为此,请设置 contr.Dummy <- function(contrasts, ...){ conT <- contr.treatment(contrasts=FALSE, ...) conT } options(contrasts=c(ordered='contr.Dummy', unordered='contr.Dummy')) 现在,无论选择了哪个因子水平,您都可以认为它暗示着这些特定水平相对于所有省略的水平都很重要。在机器学习中,我已经看到这种编码称为“单热编码”。 问题: 在每种方法下,截距和系数的解释是什么? 选择其中之一需要考虑哪些因素? 我们是否要对虚拟系数进行缩放,然后将其解释为从关到开的变化?