支持向量机(1)
来源:互联网 发布:按网络功能层次分 编辑:程序博客网 时间:2024/05/21 21:43
支持向量机在1992年被正式发表,最开始时研究线性可分支持向量机,与它相似的算法是感知机,感知机学习的策略是误分类点最少;而线性支持向量机的学习策略是间隔最大化。之后相继引入了惩罚因子和核函数的概念,能够处理线性支持向量机和非线性支持向量机。
所以整体的逻辑是分别理清三类支持向量机的关系,能够明白最终都是转化为求解凸二次规划问题;那么我们通过序列最小最优化算法SMO求解这个问题即可。那么具体逐一介绍以下内容:
支持向量机三类模型
- 线性可分支持向量机 : 当训练数据线性可分时,可通过硬间隔最大化学习一个线性分类器
- 线性支持向量机 : 当训练数据近似线性可分时,可通过软间隔最大化学习一个线性的分类器
- 非线性支持向量机: 当训练数据线性不可分时,可通过软间隔最大化与核技巧来学习一个非线性分类器
- 序列最小最优化算法SMO:求解凸二次规划的最优化算法
- 核技巧[扩展]
- 惩罚因子[扩展]
- 支持向量机的代码实现
1、线性可分支持向量机
对于给定特征空间上的训练数据集
1.1 函数间隔
从图中我们可以确定A是×类别的,B还算能够确定,然而C是不太确定的。可见一个点距离分离超平面的远近可以表示分类预测的确信程度,一个点距离分类超平面越远,那么它被预测正确地概率越大;在超平面
- 关于训练数据集T中样本点
(xi,yi) 的函数间隔是r^i=yi(w⋅xi+b) - 关于训练数据集T的函数间隔是
r^=min r^i
函数间隔虽然可以表示分类的正确性和确信度,但对于一个确定的超平面
几何间隔
假设我们已知分离超平面
我们发现函数间隔约束之后恰好是几何间隔,之所以一样,是因为函数间隔是人为定义的,里面已经潜藏了几何间隔的元素。此时,若同时扩大w和b,w扩大几倍,||w||就扩大几倍,几何间隔无影响。于是有:
- 关于训练数据集T中样本点
(xi,yi) 的几何间隔是ri=yi(w⋅xi+b)||w|| - 关于训练数据集T的几何间隔是
r=min ri
间隔最大化
我们已经知道了几何间隔,间隔最大化即是对训练集找到几何间隔最大的超平面。它意味着不仅将正负实例分开,而且对最难分的实例点(距离超平面最近的实例点)也能以足够大的确信度将它们分开。这样的超平面应该对未知实例有很好的预测能力。
则最大化几何间隔可以表示成这样的最优化问题:
由函数间隔
因为对于一个可分数据集,一定能有无穷多各超平面去实现它的分割,也就是对应不同的w,b。但无论是哪一组w,b,同比例扩大或缩小都可以使函数间隔
这是一个凸二次规划问题。如果求解了该问题的解
凸二次规划问题可以通过优化软件来进行求解,但往往效率低下,下一节内容我们介绍一种手工求解的方法。
- 支持向量机(1)
- 支持向量机1
- 支持向量机1
- 支持向量机学习笔记(1)
- 学习笔记——支持向量机svm(1)最简单的支持向量机
- 支持向量机之线性支持向量机(三)
- 支持向量机之非线性支持向量机(四)
- 支持向量机(SVM)、支持向量回归(SVR)
- 支持向量机(SVM)、支持向量回归(SVR)
- 支持向量机(SVM)、支持向量回归(SVR)
- 支持向量机(SVM)、支持向量回归(SVR)
- 支持向量机(SVM)、支持向量回归(SVR)
- 支持向量机(SVM)、支持向量回归(SVR)
- 支持向量机(SVM)、支持向量回归(SVR)
- 支持向量机(SVM)、支持向量回归(SVR)
- 支持向量机(SVM)、支持向量回归(SVR)
- 支持向量机 学习1
- 支持向量机SVM(1)
- Android通知Notification
- 混合高斯模型(Mixtures of Gaussians)和EM算法
- POJ1276 多重背包DP 生命不息优化不止
- jiffies使用举例
- Linux 用户环境变量丢失故障及解决
- 支持向量机(1)
- 黑马程序员——JAVA基础——IO流
- java.net.BindException: Address already in use: JVM_Bind:8080
- (C++)UrlEncode的标准实现 libcul
- [019]转--C++ operator关键字(重载操作符)
- jQuery/JSON
- Android 中 EventBus 的使用(2):缓存事件
- iOS企业开发者账号申请流程(未完待续)
- 主成分分析(Principal components analysis)-最大方差解释