归一化导致 R^2 得分为 0 - 套索回归

数据挖掘 回归 正常化 套索
2022-02-23 08:06:37

我正在对 7000 行数据集进行回归分析,训练/测试拆分为 70%/30%。我正在使用一个变量X来预测一个变量Y

  • X范围在 300 到 810 之间(平均 712)。
  • Y是一个整数(出现次数),范围在 0 到 20 之间(平均值 0.2)。

如果没有标准化或规范化X,我会收到:

Train score:  0.082
Test score:  0.077

然而,在规范化 ( X = (X-X.min())/(X.max()-X.min())) 时,我收到:

Train score:  0.0000
Test score:  -0.0001

对 Lasso 回归进行归一化有什么不正确的地方吗?这同样适用于标准化数据。有人能就最佳行动方案给我建议吗?

1个回答

标准化/归一化通常是正确的做法,但如果您还调整正则化强度,那么只有一个自变量会产生很小/没有区别

对于多个自变量,标准化可确保套索的惩罚更平等地适用于所有变量。如果没有标准化,大尺度变量的惩罚将小于小尺度变量(因为系数已经趋于小)。

在您的情况下,原始模型在 X 上需要一个相当小的系数,因为它的规模如此之大,因此您不会从套索中受到太多惩罚。标准化后,现在模型需要更大的 X 系数,但这意味着 lasso 惩罚的贡献更大。你得到一个R2为零表明套索惩罚现在足够大,可以将系数推至零,因此模型只是一条水平线。如果你稍微降低正则化强度,你应该能够恢复旧模型(也许,通过正确的调整?如果我有空闲时间我会研究这个)。