2017-08-15 104 views
0

我需要一个具有huber损失函数的python svm分类器。但其默认损失函数是铰链损失。你知道我怎样才能把损失函数分配给python svm?python svm函数与huber损失

svc = svm.SVC(kernel='linear', C=1, gamma=1).fit(data, label) 
+0

这是什么库? scikit学习?如果不知道您实际使用的是什么软件,很难弄清楚问题所在。 – Dylan

+0

它来自sklearn。 – user3104352

+0

那么,有一个问题是,svm.SVC()完全没有丢失参数。 svm.LinearSVC可以,但文档指定只有铰链和方形铰链可用。因此,您所需的损失功能在您使用的软件中不可用。如果你必须专门有这个损失函数,你必须自己写。 – Dylan

回答

0

实在是没有这样的事情“SVM与HUBER损失”,因为SVM实际上是一种线性(或核化)与铰链损失训练模型。如果你改变了损失 - 它不再是SVM。因此库不具有损失参数,因为改变它不适用于SVM概念。

如果你想训练模型与HUBER损失,您可以使用SGDClassiifier从sklearn,将培训与此线性模型(和许多其他)的损失。

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