首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

支持向量机及python实现(一)

支持向量机英文名称Support Vector Machine简称SVM,它是由前苏联科学家Corinna Cortes在1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中.

SVM是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解. 在机器学习中,使用支持向量机的学习算法的监督学习模型,可以分析数据,识别模式,用于分类和回归分析.

好了,我知道你们对上面“无聊”发困式的敲黑板知识点早就想揭竿起义了,sorry,下面我们来说点正常话. 此事还要从一个故事讲起:

话说在情人节的那一天,杨过大侠得知他心爱的姑姑就在情人谷,坐上他的专机--雕兄,疾飞情人谷. 眨眼间(专机很快),杨大侠背着大剑站在山谷口,但他没直接进去,为啥? 因为情人谷有天下剧毒花-情花,中者必死,而此时情人谷谷主孙止(你们肯定不记得了,我专门查的)已经在谷口前放置了大量一盆一盆的情花. 姑姑很思念,杨过很着急,打算喊着德玛西亚(我爱姑姑)的口号,手持大宝剑,硬闯蘑菇阵(情花阵),而此时,吃瓜群众金轮法王出来说句“公道话”:“孙谷主,你这么搞太不讲江湖道义了,有本事咱们1V1决战?”其他的吃瓜皮的群众也跟着附和.

孙谷主脸面受不了了,于是提出了一个办法(注意:重点来了):在谷口的很多盆情花中有很多是无毒的,开的花是蓝色的,有毒的开红花,它们的数量几乎均等,需要杨大侠利用手中的大宝剑一剑将它们分开. 孙谷主很大气也不为难他,启动阵法将两种情花几乎有规律的分开了,但是有两个要求:1.杨大侠将它们分开后,形成的两类情花组,在尽量放置更多的情花(蓝色和红色都有),不会出现很多放错现象,即蓝色的队伍里不会被放进红色的花,红色的队伍里不会被放进蓝色的花;2.既然杨大侠的武功已经登峰造极,那么增加一下难度,不过分吧?要求剑气划过的位置尽量恰好在两种花的中间位置,即划痕两边有尽可能大的空隙,这个空隙也就是情花与划痕的距离.(下图所示,花不会画以圆圈代替,大家见谅)

杨大侠大喝一声,这有何难,大剑一挥,瞬间划出一道剑气,如下图:

孙谷主大笑一声,杨大侠,好武功!但是你只满足了我的第一个要求,第二个要求没有满足哦. 杨过此时老脸一红,道:“在下刚来此地不熟悉这里气流,还请孙谷主再给一次机会“. 于是还没等人家同意,宝剑又一挥

“好人“金轮法王见状,喝道:“杨大侠的武功果然已经达到人剑合一的地步了,孙谷主,已经完全满足你的两个要求了吧“

孙谷主哼了一声,而后大袖一挥,改变阵法增加了一些情花,此时情花阵是这样的,似乎有一盆红色的情花站错队了,

杨大侠见状,也不含糊,再次大剑一挥,情花阵变成这样

此时,这种分法,即使孙谷主放更多的情花,也能够满足他的要求,孙谷主发现杨过已经学会了一个Trick(方法、招式)心有不甘,于是提出再增加一些难度,大袖一挥情花阵变成这样

杨过依一看,冷笑道:“虽然没法用一刀斩式(线性)的剑气分开,但是在下学过玉女剑法(划斜杠)武当登云梯“,只见他大喝一声,所有花瞬间抛向空中,迅速穿插于花丛间采花(划斜杠)将一片片树叶插到两种花之间.

此时在高处的孙谷主等人看到的这些情花,像是被一条曲线分开

孙谷主见状感概一声“杨大侠武功果然是天下第一了,罢了你进去吧“.

后来一些无聊的好事者(可能是马可波罗)将此事演绎推论,将这些情花叫做data(数据集),杨大侠的剑气痕迹叫做classifier(分类器),找到最大间隙的trick(方法)叫做optimization(最优化),运功让情花起飞的动作叫做kernelling(核函数),那张张树叶叫做hyperplane(超平面). 具体的含义这里不细说了,有兴趣可以自己查找资料看一下.

概述一下:当一个分类问题,数据是线性可分的,也就是杨过可以用一刀斩式的剑气将两类花直接分开,我们只需要将剑气痕位置放在让情花距离气痕的距离最大化的位置即可,寻找这个间隙最大化的过程叫最优化. 但是现时很残酷,谷主很无情,一般的数据是线性不可分的,也就是杨过找不到一个合适位置将情花很好的分类. 这时候,我们就需要学习杨大侠,利用树叶来将情花进行分类. 想让数据起飞,需要内功-核函数(kernelling),用于切分情花的树叶就是超平面.

SVM就是找到最优剑气划痕(适用线性可分数据)和最优超平面(线性不可分数据).

当然,SVM是一个非常重要的分类器,内容非常多,这里主要是简单介绍一下SVM,有机会下期会做一些小案例来说明.

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181026A1RS5D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券