具有 huber 损失的 python svm 函数

问题描述 投票:0回答:2

我需要一个带有 huber 损失函数的 python svm 分类器。但它的默认损失函数是铰链损失。你知道如何将损失函数分配给 python svm 吗?

svc = svm.SVC(kernel='linear', C=1, gamma=1).fit(data, label)
python classification svm loss
2个回答
1
投票

实际上不存在“带有 huber 损失的 SVM”这样的东西,因为 SVM 实际上是一个用铰链损失训练的线性(或核化)模型。如果你改变损失——它就不再是 SVM。因此,库没有损失参数,因为更改它不适用于 SVM 概念。

如果你想用 huber 损失训练 模型,你可以使用 sklearn 中的 SGDClassiifier,它将用这个(和许多其他)损失训练线性模型。

如果你想做一些更复杂的事情,比如具有这种惩罚的非线性模型 - 那么 sklearn 不是好的选择,你应该看看更多“低级”库,例如 TF、Keras 等。


0
投票

我将使用 hubar 损失函数实现 svm 分类器。 我不想使用铰链损失,因为铰链损失的导数是不可能的。并希望使用梯度下降法和 hubar 损失梯度。 请给我python代码。

© www.soinside.com 2019 - 2024. All rights reserved.