MATLAB fitcSVM 权重向量

7

我正在使用MATLAB中的fitcsvm函数来训练一个线性支持向量机分类器:

     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

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

1个回答

3

正如您在此文档中所看到的,fitcsvm 中超平面的方程为:

                                 f(x)=x′β+b=0

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

                                 f(x)=w*x+b=0 or f(x)=x*w+b=0

所以,β等于w(权重)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接