您确定要删除吗?

取消
首页 算法大全 应用模型 分析软件 算法学院数据中心 关于本站
在线咨询
400-820-6981
意见反馈
返回顶部

支持向量机(SVM)

机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。主要研究计算机怎样模拟或实现人类的学习行为,以获取新的知识和技能,重新组织已有的知识结构,不断的改善自身的性能。

机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。这些算法是一类能从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。简而言之,机器学习主要以数据为基础,通过大数据本身,运用计算机自我学习来寻找数据本身的规律,而这是机器学习与统计分析的基本区别。

机器学习主要有三种方式:监督学习,无监督学习与半监督学习。

(1)监督学习:从给定的训练数据集中学习出一个函数,当新的数据输入时,可以根据函数预测相应的结果。监督学习的训练集要求是包括输入和输出,也就是特征和目标。训练集中的目标是有标注的。如今机器学习已固有的监督学习算法有可以进行分类的,例如贝叶斯分类,SVM,ID3,C4.5以及分类决策树,以及现在最火热的人工神经网络,例如BP神经网络,RBF神经网络,Hopfield神经网络、深度信念网络和卷积神经网络等。人工神经网络是模拟人大脑的思考方式来进行分析,在人工神经网络中有显层,隐层以及输出层,而每一层都会有神经元,神经元的状态或开启或关闭,这取决于大数据。同样监督机器学习算法也可以作回归,最常用便是逻辑回归。

(2)无监督学习:与有监督学习相比,无监督学习的训练集的类标号是未知的,并且要学习的类的个数或集合可能事先不知道。常见的无监督学习算法包括聚类和关联,例如K均值法、Apriori算法。

(3)半监督学习:介于监督学习和无监督学习之间,例如EM算法。

如今的机器学习领域主要的研究工作在三个方面进行:1)面向任务的研究,研究和分析改进一组预定任务的执行性能的学习系统;2)认知模型,研究人类学习过程并进行计算模拟;3)理论的分析,从理论的层面探索可能的算法和独立的应用领域算法。

算法描述

支持向量机建立在计算学习理论的结构风险最小化原则之上。其主要思想是针对两分类问题,在高维空间中寻找一个超平面作为两分类的分割,以保证最小的分类错误率,而且支持向量机一个重要的优点是可以处理线性不可分的情况。

支持向量机学习的基本思想是求解能够正确划分训练数据集并且使得几何间隔最大的分离超平面,满足几何间隔最大的超平面是唯一的。

支持向量

求出⍵和b的最优解。

从而得到分离的超平面:

分类决策函数

其中,C>0为惩罚参数。

算法背景

支持向量机的第一篇论文由Vladimir Vapnik 和他的同事Bernhard Boser 及Isabelle Guyon 于1992年发表,前期基础工作早在20世纪60年代就已经出现,虽然SVM的训练非常缓慢,但由于其对复杂的非线性边界的建模能力,他们是非常准确的,并且和其他模型相比,他们不太容易发生过拟合,因此在手写数字识别、对象识别以及基准时间序列预测检验等方面成功应用。

算法应用

· 用于文本和超文本的分类,在归纳和直推方法中都可以显著减少所需要的有类标的样本数。

· 用于图像分类。实验结果显示:在经过三到四轮相关反馈之后,比起传统的查询优化方案,支持向量机能够取得更好的搜索准确度。

· 用于医学中分类蛋白质,超过90%的化合物能够被正确分类。用于手写字体识别。

参考资料

1.数据挖掘与数据化运营实战,卢辉著,机械工业出版社(2016)

2. data mining Jiawei Han (机械工业出版社第三版)

3. Simon Haykin,《神经网络原理》,2004,机械工业出版社

4.百度

5.维基百科

实例

假设现在你是一个农场主,圈养了一批牛群,但为预防狼群袭击牛群,你需要搭建一个篱笆来把牛群围起来。但是篱笆应该建在哪里呢?你很可能需要依据牛群和狼群的位置建立一个“分类器”,比较下图这几种不同的分类器,我们可以看到SVM完成了一个很完美的解决方案。

这个例子从侧面简单说明了SVM使用非线性分类器的优势,而逻辑模式以及决策树模式都是使用了直线方法。

输入输出

输入变量类型:数值型。

输出变量类型:

√ 支持向量机训练结果:给定分类的超平面函数和修正的超平面函数。

√ 测试正确率:支持向量机的测试结果。

√ 详细测试结果:列出记录的原始值与预测值。

√ 预测结果:列出记录的预测结果。

相关条目

二分类,线性不可分,分离的超平面

优缺点

SVM的优点

1. 可以解决小样本情况下的机器学习问题。

2. 可以提高泛化性能。

3. 可以解决高维问题。

4. 可以解决非线性问题。

5. 可以避免神经网络结构选择和局部极小点问题。

SVM的缺点:

1. 对缺失数据敏感。

2. 对非线性问题没有通用解决方案,必须谨慎选择Kernelfunction来处理。

确定