ベクトルwが何であるか、つまり分離面に垂直であるかをどのように見つけることができますか?
質問する
19834 次
1 に答える
20
これが私がここでやった方法です。私の記憶が正しければ、これはSVM最適化のデュアルフォームがどのように機能するかに基づいています。
model = svmtrain(...);
w = (model.sv_coef' * full(model.SVs));
そしてバイアスは次のとおりです(そして私はなぜそれがネガティブなのか本当に覚えていません):
bias = -model.rho;
次に、分類(線形SVMの場合)を行うために、N個のインスタンスとM個の機能を持つN行M個のデータセット「機能」の場合、
predictions = sign(features * w' + bias);
カーネルが線形でない場合、これは正しい答えを与えません。
詳細については、線形SVMの主変数wを生成するにはどうすればよいですか?を参照してください。、libsvmのマニュアルから。
于 2012-04-12T22:01:40.307 に答える