web-dev-qa-db-ja.com

Matlablibsvm-w係数を見つける方法

ベクトルwが何であるか、つまり分離面に垂直であるかをどのように見つけることができますか?

17
Trup

これが私がやった方法です ここ 。私の記憶が正しければ、これはSVM最適化の デュアルフォーム がどのように機能するかに基づいています。

model = svmtrain(...);
w = (model.sv_coef' * full(model.SVs));

そしてバイアスは次のとおりです(そして私はなぜそれがネガティブなのか本当に覚えていません):

bias = -model.rho;

次に、分類を行うために(線形SVMの場合)、N個のインスタンスとM個の特徴を持つN行M個のデータセット「特徴」の場合、

predictions = sign(features * w' + bias);

カーネルが線形でない場合、これは正しい答えを与えません。

詳細については、libsvmのマニュアルから 線形SVMの主変数wを生成するにはどうすればよいですか? を参照してください。

20
Richante