在存在分类预测变量的情况下可以使用岭回归吗?

机器算法验证 回归 机器学习 分类数据 岭回归
2022-03-24 20:03:43

我有一个回归问题,我正在考虑使用岭回归。预测变量之一是受试者的性别,这是一个分类变量。如何为岭回归建模处理这个变量?它可以编码为吗?如何处理超过类别的分类变量?012

2个回答

您认为分类变量在设计矩阵中被编码为指示函数/向量是正确的;这是标准的。在这方面,通常会省略其中一个级别,然后将其视为基线(如果不是,则在合并截距时肯定会有秩不足的设计矩阵)。X

如果您有一个具有多个类别的分类变量,您将再次将其视为设计矩阵中的指示函数。刚才你不会有一个向量,而是一个更小的子矩阵。让我们看看 R 的例子:X

set.seed(123)
N = 50; # Sample size
x = rep(1:5, each = 10) # Make a discrete variable with five levels
b = 2
a = 3 # Intercept
epsilon = rnorm(N, sd = 0.1)

y = a + x*b + epsilon; # Your dependant variable

xCat = as.factor(x) # Define a new categorical variable based on 'a'

lm0 = lm(y ~ xCat)


MM = model.matrix(lm0) # The model matrix you use
image(x = 1:ncol(MM), y = 1:N, z=t(MM))  # The matrix image used. / Red is zero

设计矩阵图

正如您所看到的,levels 2编码为沿第 2 列到第 5 列的单独指示变量。列中的列是您的截距,level作为单独的列被自动省略,并假定在截距旁边是活动的。34511

好的,那么岭参数呢?请记住,岭回归本质上是使用的协方差矩阵的Tikhonov 正则化版本。IE。,生成估计值如果您的矩阵中有离散(分类)或连续变量,这对您来说不是问题。正则化在实际变量定义之外进行,本质上“放大对角线上的方差(矩阵可以被认为是协方差矩阵的缩放版本,当λXβ^=(XTX+λI)1(XTy)β^XXTXXTXX居中)。

请注意,正如 seanv507 和 amoeba 正确评论的那样,在使用岭回归时,事先标准化所有变量可能是有意义的。如果你不这样做,正则化的效果可能会有很大差异。这是因为将特定变量的直觉,具体取决于 x 的原始这个最近的线程在这里显示了正则化产生了非常明显的差异的这种情况。xλxx

是的,您可以,您的 beta_ridge 将是一个数字,当性别为 1 时会弹出,当性别为 0 时不会产生影响。如果您有多个类别,根据我的经验,将它们全部设为二进制。例如,如果你有苹果、橙子、梨,而不是说 1,2,3,说 is_apple = [0,1] is_orange=[0,1] is_pear=[0,1]。