簡體   English   中英

SVM MATLAB實現錯誤繪制決策邊界

[英]SVM MATLAB implementation Error plotting decision boundary

我正在嘗試在MATLAB中進行二進制分類,但是以下代碼在最后拋出錯誤。

   load('ex6data1.mat');

% Plot training data
plotData(X, y);



fprintf('Program paused. Press enter to continue.\n');
pause;

model=fitcsvm(X,y);
visualizeBoundaryLinear(X,y,model); //error shows up here i guess


fprintf('Paused');




Error window
   Error using subsref
No appropriate method, property, or field 'w' for class
'ClassificationSVM'.

Error in classreg.learning.internal.DisallowVectorOps/subsref (line
21)
                [varargout{1:nargout}] = builtin('subsref',this,s);

Error in visualizeBoundaryLinear (line 7)
w = model.w;

Error in Untitled2 (line 18)
visualizeBoundaryLinear(X,y,model);

注意:對於正例,Y為1,對於負例為-1。

如果查看fitcsvmMATLAB文檔,您會發現沒有屬性w ,這是給您帶來錯誤的原因。

你需要計算的權重w自己,因為MATLAB是解決SVM的雙重形式 更多詳細信息可以在這里找到。 如果您想了解更多信息,請查看此參考 您可以使用以下公式:

w = zeros( size(x(1,:)) );
for i=1:N
    w = w + alpha(i)*y(i)*x(i,:);
end

您可以使用模型中返回的alpha值和數據的組合來計算w向量。

暫無
暫無

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

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