2017-08-01 16 views
1

私はsklearnを使用してPythonでrbfカーネルSVMを訓練し、現在はプロダクション用に移植しています。sklearn SVCをrbfカーネルでJavaに移植

SVC documentationを読んだとき、私は意思決定機能に出くわした:

これは私がSVC、しかし、SVCのみが公開さを評価するために、すべての学習サンプルの重みを知っている必要がありますことを示していると思われるenter image description here

サポートベクトルの重みはdual_coef_属性を介して計算されます。

これを回避するにはどうすればよいですか?

答えて

1

すべてのトレーニングサンプルの重量を知る必要はありません。サポートベクトルの重みだけが必要です。

理由は、ベクターx_iはサポートベクトルでない場合、次いで、alpha_i=0したがってy_i*alpha_i=0ならびに(5ページhereを参照)、ということです。したがって、あなたは決してそのようなx_iを(あなたがsvmに適合すると)分類プロセスに使用することはありません。 documentationで述べたように

残りのパラメータは、SVMの属性を介してアクセスできます:

このパラメータは、メンバーを介してアクセスすることができ が サポートベクトルを保持している製品y_i*alpha_isupport_vectors_を保持しているdual_coef_独立語rhoを保持するintercept_を含む。

関連する問題