吴恩达机器学习笔记(六)——支持向量机

                                                 支持向量机

1 概述

       支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。以逻辑回归为起点得到支持向量机。 

吴恩达机器学习笔记(六)——支持向量机_第1张图片

2 代价函数

       代价函数的主体由log函数变成了右图所示的分段函数,正因为这样的处理才使得支持向量机成为了大间距分类器。

吴恩达机器学习笔记(六)——支持向量机_第2张图片

 

       相较于逻辑回归的代价函数,支持向量机的代价函数不仅在假设函数上发生了变化,其中由于最终的目的都是求收敛的代价函数,前面的常数项m分之一其实并不影响,因此在支持向量机的代价函数中去掉了这个项,而λ与C其实都是代表着前后两项的权重关系,其实质并没有变化。

吴恩达机器学习笔记(六)——支持向量机_第3张图片

 

3 大边界

       根据上述代价函数的改变我们知道,当y=1的时候,我们希望?^? x>1当y=0的时候,我们希望?^? ?<−1,这就相当于在其中嵌入了一个安全因子。由于支持向量机的特性,我们更能得到像右图所示的黑线这一更加稳健的决策边界。

吴恩达机器学习笔记(六)——支持向量机_第4张图片

 

4 核函数

       我对于核函数的理解是将其看作是一种映射,从原有的可收集的特征值转换成一组新的特征值。给定一个训练样本x,我们利用x的各个特征与我们预先选定的地标?^((1) ) ?^((?) ) ?^((?) )的近似程度来选取新的特征?_1 ?_2 ?_3。

吴恩达机器学习笔记(六)——支持向量机_第5张图片

 

5实现

       在实际实时现的时候,在sklearn库中有专门的方法可以使用,查看SVC的相关介绍(np.info(svm.SVC))。

吴恩达机器学习笔记(六)——支持向量机_第6张图片


       kernel是指的是所用到的核函数,SVM模型有两个非常重要的参数C与gamma。其中 C是惩罚系数,即对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。C越小,容易欠拟合。C过大或过小,泛化能力变差。gamma是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度。

吴恩达机器学习笔记(六)——支持向量机_第7张图片

 

6 优缺点

优点:

         1、使用核函数可以向高维空间进行映射(核函数优势)

         2、使用核函数可以解决非线性的分类

         3、分类思想很简单,就是将样本与决策面的间隔最大化(代价函数的转换得到的优势)

         4、分类效果较好

缺点:

        1、对大规模数据训练比较困难(算法相对复杂)

        2、无法直接支持多分类,但是可以使用间接的方法来做(和逻辑回归一样在进行多分类问题时,也只能使用one vs all 的方         法)

 

你可能感兴趣的:(机器学习,吴恩达,Andrew,Ng,机器学习,支持向量机)