日常复习SVM

        支持向量机(supot vector machine)是机器学习中非常重要的一种算法,在神经网络普及之前,SVM在数据分类领域一直占据着主导地位。特点是对于训练数据集的数量要求不多,并且能够得出很好的效果。


1 线性SVM过程

        决策边界:作为分类数据的边界,如公式1.1所示,W^t作为x(数据)的法向量存在,应与输入数据的维度一致。

  F(X) = W^T ∙ X + B  公式1.1

图1 图片来源百度百科

        支持向量:一个标准的SVM模型,决定其分类效果的主要因素是决策边界。如图1所示,一个理想的SVM模型,其决策边界要与其支持向量保持最大距离,而上文所提到的支持向量就是距离决策边界最近的向量集合。

        优化目标:首先找到一组支持向量,如公式1.2所示。根据找到的支持向量,结合点到超平面的距离公式,继而选出一组W与b的值,可以使决策边界与支持向量的距离最大化,如公式1.3所示。

Min_i (y_i∙x_i+b)    公式1.2

Argmax_{w,b} \frac{Min_i(y_i∙x_i+b)}{||W||}    公式1.3

        根据公式1.1.2,我们可以使用放缩变换使其值大于等于1,所以支持向量到决策边界的距离就为1,故此优化目标可以简化到公式1.4所示。

Max_W,_b \frac{1}{||W||}     公式1.4

        求解过程:由公式1.1.4转化成极小值公式Min_{w,b}  \frac{ ||W||^2}{2},使用拉格朗日乘子法进行求解,其简化方程如公式1.5所示。

L(W,b,a)=\frac{||W||^2-\sum\nolimits_{{i = 1}}^n  a_i[y_i(y_i∙x_i + b) - 1]}{2}      公式1.5

        对W与b求偏导,得到条件:Min_{w,b} Max_a L(w,b,a),根据KKT定义,将其转换成如公式1.6所示条件。

Max_a Min_{w,b} L(w,b,a)     公式1.6

        将求出的偏导分别代入公式5,转换为求极小值公式,得出公式1.7。

Min_a\frac{1}{2}  \sum\nolimits_{i = 1}^m \sum\nolimits_{j = 1}^m a_i a_j y_i y_j x_i x_j  - \sum\nolimits_{i = 1}^m a_i,且\left\{  \sum\nolimits_{i = 1}^m a_iy_i=0; a_i\geq 0\right\}    公式1.7

        最终模型:接下来,我们仅需要将训练数据一一代入公式1.7中,计算得出一组a的值,并将其代入至公式1.8中,得出我们的模型数据。

W=\sum\nolimits_{i = 1}^m a_i y_i x_n    公式1.8

2 非线性SVM过程

        非线性变换:在原本维度的线性不可分数据往往在更高的维度上变得线性可分,SVM就是利用这一特点将线性不可分数据进行分类的。首先,对数据集做非线性变换Φ,利用核函数将其特征映射到更高的维度,得出修改公式1.3为公式2.1,后续求解过程一致不变。

Argmax_{w,b} [\frac{1}{||W||} Min_i (y_i∙Φ(x_i )+b) ]    公式2.1

        函数:是对数据做非线性变换的一系列算法,包括多项式核函数、高斯核函数等。

        多项式核函数:     k(x,x_i )=(x^T x_i+C)^d

        高斯核函数:        

        Sigmoid:            

3 实验与对比

        数据集采用Kaggle数据集:泰坦尼克

        数据文件:train.csv、test.csv

       整体数据集包含891条训练集和418条测试集,每条包含十一位信息,其中有部分缺失。

       求解:补全测试集中的所有是否生存。


图2 数据集信息分布

本文测试用例:

              船票等级    2     Pclass                 891

              性别            4     Sex                     891

              年龄             5     Age                    714

              亲友数量    6,7  SibSp,Parch      891

              船票价格    9     Fare                     891

              登录港口    11   Embarked            889

年龄缺失的均补充为27,登录港口缺失均映射为0。


   Sklearn中创建SVM实例:

      from sklearn.svm import SVC

      model = SVC(kernel,C,gamma)

      kernel:String

        linear  :线性核函数

        poly  :多项式核函数

        rbf     :径像核函数/高斯核

        sigmod  :sigmod核函数

        precomputed:核矩阵


C:Float

      错误项的惩罚系数,C越大,即对分错样本的惩罚程度越大,因此在训练样本中准确率越高,但是泛化能力会降低。


基于高斯核函数不同惩罚系数对数据集的精度影响(Y轴为测试集上的精度,X轴为惩罚系数)    

gamma: float

             核函数系数,仅对‘rbf’,‘poly’,‘sigmod’有效


基于高斯核函数不同gamma值对数据集的精度影响(Y轴为测试集上的精度,X轴为gamma值)


4 参考代码

5 问题与思考

1、SVM的主要应用场景是什么?

2、如何选取合适的核函数?

3、SVM在什么情况下容易产生过拟合问题?过拟合的根本原因是什么?

4、神经网络算法是否可以替代传统的SVM(SVM的关键优势是什么)?

5、如何在尽量不损失召回率的情况下提高SVM的速度?

参考答案:

1、SVM的核心思想就是找到不同类别之间的分界面,使得两类样本尽量落在面的两边,而且离分界面尽量远。相对来说,SVM更擅长处理样本数量偏少且特征较多的数据。

2、选自吴恩达:如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM;如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel; 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况

3、数据样本有脏点(噪声),因为SVM约束条件就是对于每个样本要正确分类,至于间隔最大是在这个约束条件的基础上进行的,所以如果约束条件成立就已经导致模型非常复杂,所以容易导致过拟合。

4、SVM是结构风险最小化,优化目标是最大化间隔,超参数很少,不容易过拟合,适合小样本。而反观神经网络,神经网络是需要海量数据去训练的,且其非线性表征更强、数据量更大使其在小样本方面的效果并不理想。

5、提高SVM速度分为两方面:

(1)选取适当的核函数,样本数量较多且非线性一般的情况下可采取多项式核函数,注意控制好多项式的维度。

(2)提高惩罚,使支持向量减少,会很有效的提高速度且减少内存开销。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266