支持向量机原理理解及程序

       本文以线性可分的数据集为例子分析支持向量机(SVM)的实现过程,但是,支持向量机的应用绝不仅限于线性可分的二分类问题,其可以拓展到多分类,拟合回归等问题上。

1、支持向量机原理推导

        请参考:1)SVM-支持向量机原理详解与实践

                      2)周志华的《机器学习》西瓜书

        通过以上的推导,总结起来就是:最大化两个类之间的分离边缘等价于最小化权值向量w的欧几里得范数

        模型为:

        

         前人总结说:这是一个二次规划问题,可使用通用的二次规划算法来求解。这里可以采用两种方案:1.采用matlab求解二次规划的函数:quadprog()进行直接求解,可以参考程序:支持向量机线性可分matlab程序;2.然而前面一种方法计算量正比与训练样本数,这会在实际任务中造成很大的开销,所以现在更多的采用SMO(Sequential Minimal Optimization)算法,具体的实现流程和程序,咋后面更新。

2、支持向量机的使用

          对于支持向量机这种机器学习算法,我们更多的应该是如何进行使用,原理什么的都交给教授和博士吧。对于支持向量机的使用,现在用的最多的应该是台湾大学林智仁等人开发的libsvm,详细的介绍和简介可以参考以下博文和官网链接:

           1)、libsvm支持向量机工具箱在MATLAB中的安装与使用

           2)、LIBSVM -- A Library for Support Vector Machines

           3)、二次规划问题和MATLAB函数quadprog的使用


猜你喜欢

转载自blog.csdn.net/u011622208/article/details/80173181
今日推荐