0
有人能幫我找到沒有以下代碼收斂在MATLAB上的錯誤嗎?請注意,k
意味着內核並有其自己的功能。在C++或MATLAB上實現SVM-SMO算法
我嘗試在圖片使用算法來實現它:
我的實現:
while 1
num_changed_alphas = 0;
%step 4
if (Y .* alphas < B)
[Yigi , i_WS] = max(Y .* g)
end
%step 5
if (A < Y .* alphas)
[Yjgj , j_WS] = max(Y .* g)
end
%step 6
if ((Yigi - Yjgj) <= eps)
num_changed_alphas = num_changed_alphas + 1;
break;
end
%step 7
lambda = min (B(i_WS) - Y(i_WS) .* alphas(i_WS), Y(j_WS) .* alphas(j_WS) - A(j_WS));
lambda = min (lambda, (Yigi - Yjgj) ./ (K(i_WS,i_WS) + K(j_WS,j_WS) - 2* K(j_WS,i_WS)));
g = sum (g - lambda .* Y .* K (:,i_WS) + lambda .* Y .* K (:,j_WS));
alphas = alphas + Y * lambda;
fprintf('.');
dots = dots + 1;
if dots > 75
dots = 0;
fprintf('\n');
end
if exist('OCTAVE_VERSION')
fflush(stdout);
end
end %while
SMO的標記線之間的事適用於SQL Server管理對象。我不認爲這適用於你的問題。我刪除了它,併爲MatLab添加了一個標籤。 –