机器学习基础课程学习笔记 3.支持向量机(SVM)

1. 背景:

1.1 最早是由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis 在1963年提出
1.2 目前的版本(soft margin)是由Corinna Cortes 和 Vapnik在1993年提出,并在1995年发表
1.3 深度学习(2012)出现之前,SVM(Support Vector Machine)被认为机器学习中近十几年来最成功,表现最好的算法

2. 机器学习的一般框架:

训练集 => 提取特征向量 => 结合一定的算法(分类器:比如决策树,KNN)=>得到结果

3. 介绍:

3.1 例子:
在这里插入图片描述
两类?哪条线最好?H3很好的将数据点分成了两类。

3.2 SVM寻找区分两类的超平面(hyper plane), 使边际(margin)最大
在这里插入图片描述
总共可以有多少个可能的超平面?无数条

如何选取使边际(margin)最大的超平面 (Max Margin Hyperplane)?

超平面到一侧最近点的距离等于到另一侧最近点的距离,两侧的两个超平面平行

4. 线性可区分(linear separable) 和 线性不可区分 (linear inseparable)

在这里插入图片描述
如图所示的三种数据分布情况,不能找到一个直线完全把两类数据完全分离,这就是线性不可分情况。

5. 定义与公式建立

超平面可以定义为:WX+b=0

W: 权重向量, , n 是特征值的个数
X: 训练数据
b: 偏差
在这里插入图片描述
支持向量A到超平面的距离为:
在这里插入图片描述
为了使得间距最大,找到合适的参数w和b,使其最大。
在这里插入图片描述
在逻辑算法中,我们用0和1作为类别标签,这里用-1和1作为类别标签,目的是为了让数学表达尽量简洁。

6. 求解

6.1 SVM如何找出最大边际的超平面呢(MMH)?

利用一些数学推倒,以上公式 (1)可变为有限制的凸优化问题(convex quadratic optimization),利用 Karush-Kuhn-Tucker (KKT)条件和拉格朗日公式,可以推出MMH可以被表示为以下“决定边界 (decision boundary)”
在这里插入图片描述
回顾一下朗格朗日算法,在满足一个约束条件下,求另一个参数的最小值。
在这里插入图片描述
在这里插入图片描述
总结,求解SVM算法,就是在满足约束条件y^((i) ) (w^T x^((i) )+b)≥1的前提下,求解w的2范数的平方的最小值。

7. SVM算法特性:

1.1 训练好的模型的算法复杂度是由支持向量的个数决定的,而不是由数据的维度决定的。所以SVM不太容易产生overfitting
1.2 SVM训练出来的模型完全依赖于支持向量(Support Vectors), 即使训练集里面所有非支持向量的点都被去除,重复训练过程,结果仍然会得到完全一样的模型。
1.3 一个SVM如果训练得出的支持向量个数比较小,SVM训练出的模型比较容易被泛化。

下:

2. 线性不可分的情况 (linearly inseparable case)

2.1 数据集在空间中对应的向量不可被一个超平面区分开

解决方法:
1.利用一个非线性的映射把原数据集中的向量点转化到一个更高维度的空间中。在这个高维度的空间中找一个线性的超平面来根据线性可分的情况处理
2.引入松弛系数,去除一些噪声样本点的干扰。
在这里插入图片描述
在这里插入图片描述
内积是衡量两个向量的相似性,两个向量垂直的时候,完全线性无关,内积为0.
在这里插入图片描述
把数据映射到高维空间时,在n维空间内计算两个向量的内积来比较其之间的关系,需要n^2此才能完成,计算成本太高。
3.4几种核函数的对比
(1)线性核函数
在这里插入图片描述
优点:简单,运算效率高,能生成一个最简洁的线性分隔超平面。
缺点:对于线性不可分的数据集没有很好的办法。
(2)多项式和函数
在这里插入图片描述
优点:可以拟合出复杂的分隔平面
缺点:可选参数太多(伽马,c,n);多项式阶数n过大时,内积会接近0或者趋于无穷大。
(3)高斯核函数
在这里插入图片描述
优点:可以把输入特征映射到无限维,且取值范围在【0,1】之间;参数只有一个σ。
缺点:计算速度比较慢;容易过拟合

  1. 如何选择核函数?如何确定是用SVM算法还是逻辑回归?
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值