How to correct the error - ClassificationSVM
    8 ビュー (過去 30 日間)
  
       古いコメントを表示
    
My Matlab code -
    clear
    load fisheriris
    % Only use the third and fourth features
    x=meas(:,3:4);
    gscatter(x(:,1),x(:,2),species);
    % Only use the last two categories
    x=meas(51:end,3:4);
    group=species(51:end,1);
    gscatter(x(:,1),x(:,2),group);
    % Linear SVM
    svmStruct = fitcsvm(x,group,'showplot',true);
    % Kernel SVM
    svmStruct = fitcsvm(xdata,group,'showplot',true,'kernel_function','rbf');
    % Select different sigma
    svmStruct = fitcsvm(xdata,group,'showplot',true,'kernel_function','rbf','rbf_sigma',0.5);
But here I get the error message such as below -
Error in fitcsvm (line 316)
    obj = ClassificationSVM.fit(X,Y,RemainingArgs{:});
Error in Untitled (line 11)
svmStruct = fitcsvm(x,group,'showplot',true);
0 件のコメント
採用された回答
  Walter Roberson
      
      
 2018 年 6 月 16 日
        
      編集済み: Walter Roberson
      
      
 2018 年 6 月 16 日
  
      svmStruct = fitcsvm(x,group,'HyperparameterOptimizationOptions', struct('showplot',true))
svmStruct = fitcsvm(x,group,'HyperparameterOptimizationOptions', struct('showplot',true), 'KernelFunction','rbf','KernelScale',0.5)
1 件のコメント
  Walter Roberson
      
      
 2018 年 6 月 17 日
				ntry = 10;
kftypes = {'gaussian', 'rbf', 'polynomial'};
nkf = length(kftypes);
svmStructs = cell(ntry,1);
for idx = 1 : ntry
  kfidx = randi(nkf);
  kftype = kftypes{kfidx};
  if ismember(kfidx, [1, 2])
    ks = exp(randn());
    opts = {'KernelScale', ks};
  else
    q = randi(20);
    opts = {'PolynomialOrder', q}
  end
  svmStructs{idx} = fitcsvm(x, group, 'HyperparameterOptimizationOptions', struct('showplot',true), 'KernelFunction', kftype, opts{:});
  disp(kftype)
  celldisp(opts);
  pause(2);
end
その他の回答 (5 件)
  vokoyo
 2018 年 6 月 17 日
        
      編集済み: vokoyo
 2018 年 6 月 17 日
  
      1 件のコメント
  Walter Roberson
      
      
 2018 年 6 月 17 日
				Try different settings for the KernelFunction https://www.mathworks.com/help/stats/fitcsvm.html#bt9w6j6_sep_shared-KernelFunction and for the KernelScale and see what the effects are.
  vokoyo
 2018 年 6 月 18 日
        
      編集済み: vokoyo
 2018 年 6 月 18 日
  
      
      6 件のコメント
  Walter Roberson
      
      
 2018 年 6 月 18 日
				It sounds as if you are calling svm_3d_matlab_vis without passing in any parameters.
  Don Mathis
    
 2018 年 6 月 18 日
        FITCSVM does not have an argument named 'showplot'. When I run your original code in R2018a I get this:
Error using classreg.learning.FitTemplate/fillIfNeeded (line 612)
showplot is not a valid parameter name.
Error in classreg.learning.FitTemplate.make (line 124)
            temp = fillIfNeeded(temp,type);
Error in ClassificationSVM.template (line 235)
            temp = classreg.learning.FitTemplate.make('SVM','type','classification',varargin{:});
Error in ClassificationSVM.fit (line 239)
            temp = ClassificationSVM.template(varargin{:});
Error in fitcsvm (line 316)
    obj = ClassificationSVM.fit(X,Y,RemainingArgs{:});
Error in Untitled3 (line 11)
    svmStruct = fitcsvm(x,group,'showplot',true);
  Don Mathis
    
 2023 年 4 月 25 日
        
      編集済み: Don Mathis
    
 2023 年 4 月 25 日
  
      svmtrain() was replaced by fitcsvm(), and fitcsvm does not have a 'showplot' argument. Making a 2D plot of data points and support vectors in not built-in to fitcsvm, nor the object that it returns, ClassificationSVM.
If you have a 2D input space and you want to plot points and support vectors, you can see an example of how to do that here: https://www.mathworks.com/help/stats/classificationsvm.html#bt7go4d
0 件のコメント
参考
カテゴリ
				Help Center および File Exchange で Classification Ensembles についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





