《机器学习实战笔记--第一部分 分类算法:支持向量机 1》

    先简述SVM的基本概念,SVM有很多实现,我们只介绍其中最流行的一种,最小序列化SMO算法。在此之后,将介绍一种使用核函数的方式将SVM扩展到更多的数据集上。

    1、基于最大间隔分隔数据:

      优点:泛化错误率低,计算开销不大,结果易于解释;

      缺点:对参数调节和核函数敏感,原始分类器不加修改仅适用于处理二分类问题;

      适用数据类型:数值型和标称型数据。


    上图中显示的是几个线性可分的数据,将数据集分开来的直线称为分隔超平面。由于上图中的数据点都在二维,所以此时分隔数据的平面就是一条直线,如果数据集是三维的,那么此时用来分隔数据的就是一个平面。更高维的以此类推。这个划分对象称为超平面,也就是分类的决策边界。分布在超平面一侧的所有数据都属于某个类别,而分布在另一侧的所有数据集则属于另一个类别。

    我们用这种方法来构建分类器,如果数据点离决策边界越远,那么最后的预测结果也就越可信。上图中B C D三条直线都能将数据分隔开,那么哪种分隔效果最好呢?我们希望找到离分隔超平面最近的点,确保他们离分隔面的距离尽可能的远。这里点到分割面的距离成为 间隔。我们希望间隔尽可能的大。

    支持向量 就是离分割超平面最近的点,接下来只要最大化支持向量到分割面的距离,需要找到此问题的优化求解方法。

    2、寻找最大间隔

    

    

   2.1、 分类器求解的优化问题

    


        直接对上面的的问题进行求解十分麻烦,所以一般才去另一种已于求解的形式。首先对于大括号中的部分,将对乘积优化的问题修改一下,我们固定其中一个因子而最大化其他的因子。令离分隔超平面最近的点的 label*(wt + b)=1。离超平面月圆的点 label*(wt + b)的值越大。
    

 


    常数C常用于控制“最大化间隔”和“保证大部分点的间隔小于1.0”这两个目标的权重。在优化算法的实现代码中,常数C是一个参数,因此我们可以通过调节该参数得到不同的结果。一旦求出所有的alpha,那么分隔超平面就可以用这些alpha来表示。SVM中主要工作就是在求解这些alpha。

 2.2、 SVM应用的一般框架

    (1)收集数据: 任意方法;

    (2)准备数据:数值型数据;

    (3)分析数据:有助于可视化分超平面;

    (4)训练算法:两个参数的调优;

    (5)测试算法:十分简单的计算过程

    (6)使用算法:几乎所有的分类问题都可以使用SVM。 SVM本身是一个二分类器。对于多类问题应用SVM需要对代码进行一些修改。

    

猜你喜欢

转载自blog.csdn.net/qq_41635352/article/details/80197904