2017-08-15 7 views
0

私はhuber損失関数を持つPythonのsvm分類器が必要です。しかし、そのデフォルト損失関数はヒンジ損失です。どのように私はpython svmに損失関数を割り当てることができます知っていますか? SVMは、文字通り、線形(またはカーネル化)ヒンジ損失と訓練されたモデルであるようpython svm関数huber喪失

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

これはどのライブラリですか? scikitは学ぶ?あなたが実際に使っているソフトウェアが分からなければ、問題が何であるか把握するのは難しいです。 – Dylan

+0

sklearnからです。 – user3104352

+0

まあ、1つの問題は、svm.SVC()に損失パラメータが全くないことです。 svm.LinearSVCは行いますが、ドキュメントではヒンジと二乗ヒンジだけが使用可能であると指定しています。したがって、使用しているソフトウェアでは、必要な消失機能は利用できません。あなたがその損失機能を具体的に持っていなければならない場合は、あなた自身でそれを書かなければならないでしょう。 – Dylan

答えて

0

は、本当に「フーバー損失とSVM」のようなものはありません。あなたが損失を変更した場合、それはSVMを停止します。したがって、SVMの概念には適用されないため、ライブラリには損失パラメータはありません。

あなたはフーバー損失でモデルを訓練したい場合は、これで線形モデル(および他の多くの)損失を訓練れる、sklearnからSGDClassiifierを使用することができます。

この種のペナルティを伴う非線形モデルのようにもっと複雑なことをしたいのであれば、sklearnは良い選択ではありません。TF、Kerasなどのより低レベルのライブラリを見てください。に。

関連する問題