簡體   English   中英

Matlab libsvm-找不到向量系數w

[英]Matlab libsvm - couldn't find the vector coefficients w

我的數據矩陣是1000x65K矩陣,其中包含500個正例和500個負例。 我的標簽是[ones(500,1); -ones(500,1)];

我正在使用以下代碼訓練線性svm:

cost = 0.1;
epsilon = 2;
gamma = 0.1;
degree = 3;
coef0 = 0;

options_string = ['-s 0 -t 0 ' ' -c ' num2str(cost) ' -p ' num2str(epsilon) ' -g ' num2str(gamma) ' -d ' num2str(degree) ' -r ' num2str(coef0) ' -b 1'];
SVRModel = svm_train(data, labels , options_string);

我在谷歌上搜索了一下,發現可以使用以下代碼找到系數向量w:

w = model.SVs' * model.sv_coef;

但這給了我一個標量,而不是系數的向量。

我也嘗試過:

w = (SVRModel.sv_coef' * full(SVRModel.SVs));

有人可以澄清一下如何找到向量系數w嗎?

謝謝,

吉爾

我認為您在嘗試在Matlab中將其作為一個襯板而淹死了。 您將需要實現以下等式:

方程

所以w就像

w = zeros(1,65000);
for i=1:1000,
    w = w + model.sv_coef(i)*model.SVs(i,:)
end

Matlab將讓您知道尺寸不匹配的情況,對您而言將做得很好。 一旦掌握了編寫一條直線的難度,就很困難了,但重要的是要了解計算方式,而不是一條直線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM