广义回归中的岭惩罚函数问题我们的客户对广义回归有一些疑问,根据他们之前的经验,他们希望使用“Ridge”作为惩罚函数来构建模型,因为他们不想错过任何变量的影响,“Elastic Net”或“ Lasso”惩罚函数不适合这种情况。
但是,客户通常分析的光谱数据有很多变量(有些数据包含 4500 个变量,共 65 行),使用“Ridge”作为惩罚函数时,耗时较长,无法得出结果。
我已将问题反馈给 JMP 支持,他们尝试了我提供的样本(作为附件,大约 2400 个变量和 65 个观察值) Windows 10 机器,具有 16GB RAM 和 4 核。JMP 在第一个小时内进入“无响应”模式,但随后产生了一个进度条。 获得岭结果需要很长时间(4.5hr),甚至将网格点更改为50。
与 Elastic net 或 Lasso 方法相比,运行时间约为 2~3 分钟,Elastic net/Lasso 和 Ridge 的时间花费差异很大
此外,客户还提到Python可以更快地执行以“Ridge”作为惩罚函数的广义回归。
是否可以加快模型拟合过程? 像让 CPU 满载之类的东西?或者其他合适的功能/平台可以帮助客户更有效地获得估计结果?
我也附上了样本数据。 谢谢
回复:广义回归中的岭惩罚函数问题FWIW,我有一个 32 核和 128GB 内存的 Windows 10 盒子。 我不确定 JMP 会利用什么,但如果有帮助,我很乐意尝试获得另一个基准。 但细节很重要(特别是如果跑步需要五个小时......)。那么你能发布脚本来做岭回归吗? 我没有在表中看到它。
回复:广义回归中的岭惩罚函数问题这听起来像是我们应该使用弹性网的情况。在这种情况下,预测变量远多于观察变量,在进行变量选择时最大的担忧是共线性和冗余会导致我们错过真正重要的预测变量。 如果 X1 和 X2 高度相关,则前向选择之类的东西可能只会选择其中一个。 弹性网络的优势在于它将选择相关预测变量组,因此在这种情况下为 X1 和 X2。 我的猜测是,在这种情况下,“不想错过任何变量的影响”实际上意味着他们不想错过任何可能产生实际影响的影响。 弹性网络就是为这个确切的场景而构建的。
那么为什么在这里套索和弹性比岭回归快得多呢? 因为它们进行变量选择,弹性网络和套索计算只涉及少数预测变量,而岭回归对指定的所有 2400 个变量进行优化。 同样重要的是要注意,lasso 和弹性网络在拟合质量和解释方面都倾向于主导岭回归,因此我们努力改善 lasso 和弹性网络拟合器的计算时间。 我们无法优先考虑岭回归的类似改进。
回复:广义回归中的岭惩罚函数问题谢谢,Ian,我在它的脚本区域用脚本修改并重新附加了示例数据,命名为“Ridge test”,您可以运行脚本进行测试。
回复:广义回归中的岭惩罚函数问题@Eric_Wang Python 中岭回归的一些实现需要对输入变量进行标准化。 标准化变量可以加快求解系数的时间。 我不确定 JMP 的例程是否会自动对输入执行某种标准化,但您可以试验一下,标准化约 4500 个输入变量是否允许更快的计算时间。
回复:广义回归中的岭惩罚函数问题谢谢, @Bill_Worley和@clay_barker ,你的建议和解释很有帮助。 我将尝试说服我的客户首先针对这种情况尝试 Elastic Net 或 PLS 方法。
回复:广义回归中的岭惩罚函数问题嗨,埃里克,
让您的客户尝试的另一个建议是偏最小二乘,在这种情况下是 PLS-DA。该平台允许选择变量,但在建模过程的第一遍中使用所有变量。 它的速度非常快,对于模型比较以查看哪个建模平台提供最佳整体拟合很有用。

那就是关于 PLS,我和 Clay 一起讨论这个问题。我使用 Gen Reg 分析了几个光谱数据集,而 Elastic Net 在使用如此广泛的数据集构建良好的预测模型方面排名靠前。
最好的祝福,
账单
回复:广义回归中的岭惩罚函数问题谢谢你的时间和帮助,伊恩。
回复:广义回归中的岭惩罚函数问题你好@clay_barker ,感谢您的回复,我有一些问题需要与您这样的 GR 专家核实。 我们的客户想知道您对“避免”使用 Ridge 作为惩罚方法有什么建议,在分析数据时涉及多少个变量或观察值?此外,只是好奇您是否建议他们通过 FDE 分析这些频谱数据? 谢谢你。
回复:广义回归中的岭惩罚函数问题@ian_jmp ,这里是技术支持跟踪, 7613489182 . 你可能会在那里找到你要找的东西。
抄送: @亚当莫里斯, @clay_barker