1

私は、固有の二次計画問題を解決するために cvxopt を使用して、SVM の独自の大まかな実装をいじっていました。私は SVM の初心者です。

これは私自身の実装であるため、マージンサポートベクトルと分離平面のしきい値 b を把握する責任は私にあります。かなりのサイズ (約 5K サンプル、2 次元の数値入力) のデータ セットで、ソフト SVM 形式で、マージン サポート ベクターを見つけようとしているときに問題に遭遇しました。

マージン サポート ベクターは、C よりも小さいゼロ以外のアルファです。ただし、cvxopt の feastol パラメータをやみくもに使用して、C とみなすことができるアルファと C よりも小さいとみなすことができるものを決定すると、しきい値 b が各マージンから導出されることがわかりました。サポート ベクターはかなり異なり、場合によっては著しく異なります。(理論的には、マージンサポートベクトルのいずれかから導出されたしきい値 b は同じであると想定されています)

アドホックなしきい値処理が機能する場合もありますが、実行できない場合もあります。さまざまなしきい値を巧みに試して、「最も一貫性のない」bのセットなどを取得する方法があるかもしれません。

(a) そのような状況は、実際の実践者 (または libsvm や svm-light などの「内部」実装) によって実際に遭遇したのか、それとも私の特定のケースではバグや実装の問題のように聞こえますか?

(b) これが実際に問題である場合、どのように解決されますか: Burges による SVM チュートリアルでは、マージン サポート ベクターから導出されたすべてのしきい値の平均を取るだけであると述べています。 Gunn の技術レポート ( http://www.ecs.soton.ac.uk/~srg/publications/pdf/SVM.pdf )。それは簡単な方法であり、実際にはうまく機能しますか?これは libsvm や svm-light などで行われていることですか? または、さまざまなしきい値を試して、一貫性のない許容可能なしきい値のセット b を取得する原則的な方法はありますか?

4

0 に答える 0