需要澄清 svm.LinearSVC 中的“惩罚”参数

时间:2021-04-23 05:14:17

标签: python svm loss-function

关于此 post,已接受的答案解释了 SVM 正则化问题中的惩罚和损失。然而,最后使用了术语“l1-loss”、“l2-loss”。

据我所知,正则化问题中的目标函数是损失函数的总和,例如铰链损失:
\sum_i [1- y_i * f_i]_+
和处罚期限:
\lambda /2 ||\beta ||^2

通过说“l1 铰链损失”,我可以将其解释为适用于损失和惩罚项的参数“惩罚”中指定的 l1 范数吗?

在下面来自统计学习元素(Hastie 等人)的正则化问题中,是否使用了 l1-loss?

enter image description here

1 个答案:

答案 0 :(得分:1)

不,L2 表示应用了什么样的惩罚,铰链描述了损失项的性质。选择 L1 或 L2 不会改变铰链损失,它们只会影响惩罚项。

如果您参考此处的等式:https://scikit-learn.org/stable/modules/svm.html#linearsvc 对于 LinearSVC 的默认损失项,左侧部分是惩罚,默认情况下是应用于权重的 L2 惩罚,而等式的右侧部分是铰链 -损失。

在此处检查惩罚参数的描述:https://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html

指定用于惩罚的规范。

在您上面提供的示例中,正在使用 L2 惩罚。 L1 惩罚将是 Beta 项的绝对值之和,上面是平方值之和。