MATLAB fitcSVM权重向量

Peg*_*gah 5 matlab pattern-recognition classification machine-learning svm

我正在使用MATLAB中的fitcsvm函数训练线性SVM分类器:

     cvFolds = crossvalind('Kfold', labels, nrFolds);

          for i = 1:nrFolds                       % iterate through each fold

              testIdx = (cvFolds == i);            % indices of test instances
              trainIdx = ~testIdx;                 % indices training instances

              cl = fitcsvm(features(trainIdx,:), 
              labels(trainIdx),'KernelFunction',kernel,'Standardize',true,...
             'BoxConstraint',C,'ClassNames',[0,1], 'Solver', solver);

              [labelPred,scores] =  predict(cl, features(testIdx,:));
              eq = sum(labelPred==labels(testIdx));
              accuracy(i) = eq/numel(labels(testIdx));

          end
Run Code Online (Sandbox Code Playgroud)

从这部分代码中可以看出,训练好的SVM模型存储在cl中.检查cl中的模型参数我没有看到哪些参数对应于分类器重量 - 即.线性分类器的参数反映了每个特征的重要性. 哪个参数代表分类权重?我在MATLAB文档中看到"向量β包含定义超平面正交向量的系数" - 因此cl.beta代表分类权重?

Ali*_*ani 3

正如您在本文档中看到的,a hyperplanein的方程fitcsvm

\n\n
                                 f(x)=x\xe2\x80\xb2\xce\xb2+b=0\n
Run Code Online (Sandbox Code Playgroud)\n\n

如您所知,这个方程显示了以下关系:

\n\n
                                 f(x)=w*x+b=0 or f(x)=x*w+b=0\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,\xce\xb2 等于 w(权重)。

\n