【问题标题】:Different penalty functions for lasso, elastic net, and ridge regression in RR中套索、弹性网和岭回归的不同惩罚函数
【发布时间】:2020-05-07 01:31:19
【问题描述】:

当在 R 中使用正则化(例如 lasso、ridge 或 elastic net)时,它们是否允许我将惩罚函数更改为 Huber 或绝对值,而不是二次 L2 范数?

【问题讨论】:

    标签: r regularized robust


    【解决方案1】:

    我认为目前还没有任何软件包可以指定您自己的惩罚公式。有像 hqregncvreg 这样的特殊软件包,可以为您提供一些其他选择。第一个hqreg 允许Huber。第二个ncvreg 允许最小最大凹面惩罚 (MCP) 和平滑剪裁绝对偏差 (SCAD)。

    【讨论】:

    • 请注意,当您将惩罚从 L1 更改为 L2 范数时,就是从 Lasso 转到 Ridge 时,它​​们的线性组合就是所谓的弹性网络。因此,例如将正则化路径更改为 Huber 或 Scad 不会产生 Lasso 或 Ridge。您还可以将 L2 范数与 SCAD 或 MCP 添加一个“弹性”术语相结合,就像弹性网络一样。
    • 我不想改变正则化,只是残差的范数。我想要这样的东西作为我的惩罚:最小化 {$||Ax-b||_1 + ||x||_{1}$},或最小化 {$||Ax-b||_1 + ||x ||_{2}^2$},或者代替 1 范数,插入 Huber。 (刚刚意识到乳胶在这块板上不起作用。)
    • 最小化 {||Ax-b||_2} 给出 LS。最小化 {$|Ax-b||_2 -||b||_2} 产生岭。惩罚项是||b||_2。所以改变残差的二次损失意味着改变 {||Ax-b||_2}。那是你要的吗? hqreg 就是这种情况,其中整个损失函数更改为 Huber 损失函数,您仍然可以在该损失函数中添加一个惩罚项,以对其进行正则化。如果您想要不同的损失函数,没有一个包适合所有解决方案。
    • 我检查过了! Hqreq 有 Huber,我可以使用参数 alpha 在 ||x||_1 和 ||x||_2 之间切换!谢谢!
    猜你喜欢
    • 2020-12-31
    • 2023-02-03
    • 1970-01-01
    • 2015-03-05
    • 2017-11-29
    • 2021-11-15
    • 2019-12-30
    • 2018-12-16
    • 2014-12-16
    相关资源
    最近更新 更多