机器学习作业6——svm支持向量机

目录

一、理论

概念:

线性可分:

支持向量:

间隔:

目标:

软间隔:

梯度下降法:

别的方法:

拉格朗日函数:

SMO算法:

核函数:

二、代码

说明:

三、结果:

优缺点分析:

遇到的问题:


一、理论

svm的目的是找到一个最优的划分超平面或者决策边界,从而实现对数据的有效分割或者拟合。

超平面:

在二维情况下,上图的线就是超平面,而若特征有3维,则超平面就是一个平面,而高维情况很多,就统一叫作超平面。

所以当有了一个数据集后,主要的问题就是如何找出这个最优的超平面

概念:

线性可分:

现在先假设一个数据集是线性可分的。

因为超平面都可以用一个线性方程表示w^T x + b = 0,其中:w是超平面的法向量。x是数据点的特征向量。b是偏置。

有了这个概念,线性可分就可以定义为:

当标签为正类(y=1)时,w \cdot x_i + b \geq 0

当标签为负类(y=-1)时,w \cdot x_i + b < 0

将这两个式子合起来,简写为:y_i (w \cdot x_i + b) \geq 0,使得式子统一

支持向量:

由数学知识得到,假设一个平面为Ax+By+Cz+D=0, 那么将这个平面乘以一个数后,平面还是同一个平面,所以可以通过控制乘的这个数,使得w \cdot x_i + b \geq 1,y = +1,w \cdot x_i + b \leq -1,y = -1,化简一下变为:

y_i (w \cdot x_i + b) \geq 1

通过这样的缩放变换,当一个样本点使得w \cdot x_i + b = \pm 1,这个样本点就是距离这个超平面最近的点,我们把这些点称作支持向量。

虚线上的点就是支持向量

间隔:

在样本空间中,任意点到超平面的距离为:d = \frac{​{|w \cdot x + b|}}{\left \| w \right \|}

例如在三位空间中,点到平面距离公式为:d = \frac{​{|Ax_0 + By_0 + Cz_0 + D|}}{​{\sqrt{​{A^2 + B^2 + C^2}}}}

在支持向量中,{|w \cdot x + b|}这项是为1的,所以两个虚线之间的距离为:2*\frac{1}{\left \| w \right \|},这一项被称之为间隔

目标:

有了以上概念,我们的目标是:

希望最大化间隔\frac{2}{\left \| w \right \|},并且超平面满足约束条件y_i (w \cdot x_i + b) \geq 1,i = 1, 2, \ldots, n

而最大化间隔\frac{2}{\left \| w \right \|},可以等价为最小化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值