机器学习:支持向量机(SVM)与Python实现第(二)篇
来源:互联网 发布:上海赤森网络 编辑:程序博客网 时间:2024/06/04 00:51
前言
最近看了Andrew Ng的机器学习视频中的支持向量机,视频的内容比较浅显,没有深入解释支持向量机中的数学原理。但是对于一个比较执着于知道为什么的人,笔者还是去网上查找了有关支持向量机原理以及实现的相关资料。在查找的过程中,笔者发现支持向量机的内容还是蛮多的,于是笔者根据自己的理解,并且参考了一些相关资料,最终写下了支持向量机的四篇博客。
机器学习:支持向量机(SVM)与Python实现第(一)篇——此篇主要介绍了分类间隔,引入SVM。
机器学习:支持向量机(SVM)与Python实现第(二)篇——此篇主要介绍了使用拉格朗日乘子来简化SVM问题的优化。
机器学习:支持向量机(SVM)与Python实现第(三)篇——此篇主要介绍非线性分类(核函数)以及松弛变量。
机器学习:支持向量机(SVM)与Python实现第(四)篇——此篇主要介绍SMO算法并用python实现了简单的SVM分类器。
上一节经过我们的推导,最终把问题变成:
接下来我们就要来看看如何来高效解决这个问题。
拉格朗日对偶性
首先我们先暂时放下SVM和最大间隔分类器,而来谈谈如何解决含有限制的优化问题。这种问题的一般形式是:
对于这种问题,一般我们使用拉格朗日乘子(对拉格朗日乘子的理解请参考)来解决,即我们定义:
接下来我们对
上面列举的限制条件是等式的情况,有时候限制条件是不等式。考虑下面的原始优化问题:
接下来详细推导一下KKT条件:
现在假设最优解为
我们的最开始的问题是
优化间隔分类器
好了,现在回到我们一开始的问题,我们要优化的目标是:
图中三个在虚线上的点就叫做支持向量。也就只有在这三个点的时候,
现在我们来构造一个拉格朗日函数:
现在我们来找它的对偶问题。根据上面的KKT条件有:
我们现在直接对w和b求偏导并让其等于0。如下:
在我们继续去求解上面的优化问题前,我们来看一些有趣的结论。假设我们现在已经训练好了模型,那么对于一个新的数据,我们希望对它做一个预测,于是我们先计算
到现在为止,我们已经越来越接近结果了,但是我们从一开始到现在只是谈论到了线性分隔器,那么对于非线性的分类呢?第三篇我们将一起来学习一种叫做核函数的东西,有了它,妈妈再也不用担心我解决不了非线性的分类了。
- 机器学习:支持向量机(SVM)与Python实现第(二)篇
- 机器学习:支持向量机(SVM)与Python实现第(一)篇
- 机器学习:支持向量机(SVM)与Python实现第(三)篇
- 机器学习:支持向量机(SVM)与Python实现第(四)篇
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
- 机器学习算法与Python实践之(二)支持向量机(SVM)初
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
- 转载--机器学习算法与Python实践之(二)支持向量机(SVM)初级
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现(源码)
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
- JVM加载class文件的一些理解
- rtsp vod
- tf.identity()的理解
- Python按照索引访问list
- HTML初学心得笔记2
- 机器学习:支持向量机(SVM)与Python实现第(二)篇
- Codeforce-126B:Password(KMP模板题)
- 迷宫(回溯,递归)
- 面试题
- 码云
- 1401 Factorial
- 数据库的优化策略
- 浅谈存在与信念
- Spring声明式事务管理(基于注解方式实现)