【问题标题】:Hyperplane in SVM classifierSVM分类器中的超平面
【发布时间】:2014-10-24 23:10:01
【问题描述】:

我想得到一个 SVM 分类器中超平面的公式,

所以我可以根据与超平面的距离计算每个样本的真实分类概率。

为简单起见,想象一下 MATLAB 自己的示例,

load fisheriris
xdata = meas(51:end,3:4);
group = species(51:end);
svmStruct = svmtrain(xdata,group,'showplot',true);

这给了,

超平面是一条线,我想要那个公式。

超平面也可以有凌乱的形状!

我能做什么?也许还有其他方法。

感谢您的帮助。

【问题讨论】:

    标签: matlab classification svm


    【解决方案1】:

    基于 SVM 的分类器包含支持向量

    要更轻松地从 svmStruct 读取它,请使用 svmtrain 调用与 "AUTOSCALE"@ 987654327@:

    svmStruct.SupportVectors
    
    svmStruct = 
    
              SupportVectors: [3x2 double]
                       Alpha: [3x1 double]
                        Bias: -23.1428
              KernelFunction: @linear_kernel
          KernelFunctionArgs: {}
                  GroupNames: [150x1 logical]
        SupportVectorIndices: [3x1 double]
                   ScaleData: []
               FigureHandles: {[170.0012] [171.0052 172.0018] [225.0018]}
    
    
    ans =
    
        5.5000 3.5000
        4.5000 2.3000
        4.9000 2.5000
    

    >> data( svmStruct.SupportVectorIndices,: )
    
    ans =
    
        5.5000 3.5000
        4.5000 2.3000
        4.9000 2.5000
    

    如果您使用默认的 'autoscale' 选项,那么您将需要使用类似这样丑陋的东西来展开缩放:

     (    data( svmStruct.SupportVectorIndices( 1 ),: )
        + svmStruct.ScaleData.shift
      ).* svmStruct.ScaleData.scaleFactor
    

    ( >>> https://www.mathworks.com/matlabcentral/newsreader/view_thread/249055 )


    对于从 SVM 分类器内部数据中分离超平面的构造,您可能对 >>> http://scikit-learn.org/stable/auto_examples/svm/plot_separating_hyperplane.html

    感兴趣

    使用具有线性核的支持向量机分类器在两类可分离数据集中绘制最大边距分离超平面的参数

    【讨论】:

      猜你喜欢
      • 2016-07-20
      • 2016-12-04
      • 2016-02-21
      • 2016-10-23
      • 2018-03-12
      • 2015-08-11
      • 2014-07-13
      • 2013-10-27
      • 2014-01-17
      相关资源
      最近更新 更多