支持向量机原理及Python实现

  该篇博客介绍了支持向量机的硬间隔、软间隔、核方法三种理论,并介绍了Python的实现方法,如果有什么问题或者疑问麻烦评论区指出(第一次分享理论知识,可能思路不是很清晰)。(本博主以后会在CSDN分享自己的知识和体会,帮助大家避坑)

  另外,关于支持向量机的理论和实现我会在B站进行发布相关视频,目前正在准备,如果文字不好理解的话请移步B站视频,对理论进行手推。

支持向量机(SVM)

  支持向量机(Support Vector Machine,SVM)主要有三种:硬间隔、软间隔和核方法。三种各不相同,其中硬间隔SVM将所有样本都正确分类,在理论分析方面便于理解,而实际应用中难实现,因为样本总是存在噪声,不可能全部线性可分。因此,提出了软间隔SVM,允许部分样本误判,实现样本特征的线性可分。硬间隔SVM和软间隔SVM都是基于样本特征空间线性可分的,实际应用中,样本特征可能不是完全的线性可分,因此将核方法引入SVM,得到Kernel-SVM,可以实现样本的非线性分类。

图1 硬间隔、软间隔、核方法SVM区别

之前在学习时,听别人说了这样一句话:支持向量机有三宝:间隔、对偶、核技巧。个人觉得这句话对支持向量机有了深刻的概况

一、硬间隔SVM

  SVM就是需要找到一个超平面,将不同类别的样本区分开来。如图1.1所示,每一个样本有两个特征 x 1 x_1 x1 x 2 x_2 x2。其中+表示正样本,-表示负样本。通过图1.1可以较为清除的观察到,存在一个超平面,可以将正负样本区分开来。但是,这样的超平面有无限个,应该如何找到这个超平面?

图1.1 样本空间(来自周志华《机器学习》)

  首先,根据图1.1的几何意义,得到SVM的数学方程。设样本点有N个 { ( x i , y i ) } i = 1 N \{(x_i,y_i)\}^N_{i=1} { (xi,yi)}i=1N ,其中 x i x_i xi是一个二维的向量, y i y_i yi为样本的标签, y i = { + 1 , − 1 } y_i=\{+1,-1\} yi={ +1,1}

  目标函数为样本点到超平面的距离,约束条件表示每一个样本点都可以正确分类。公式(1.1)表示在每一个样本都可以正确分类的情况下,样本点到超平面的最小距离最大。这样,可以在样本数据存在噪声的情况下,仍然可以正确分类。但是,公式(1)无法直接实现,或者实现比较麻烦,需要对上述公式进行转换,便于计算机计算。

  结合公式(1.1)的约束条件和目标函数,发现 y i ( w T ⋅

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值