
SVM
songhao22
这个作者很懒,什么都没留下…
展开
-
基于svm的中文文本自动分类系统
今天刚改完成了软件工程的大作业展示,即:基于内容的文本分类系统,使用libsvm 进行分类。在百度谷歌了很久之后,发现很少有这样的源码可以下载,本人便想着写完之后上传上去。 首先介绍一下流程: 1.先使用中科院的分词器ICTLAS对训练集进行分词 2.将所有的词构建成一个字典,以label item的形式,后面svm要用到。如:1 中国3转载 2016-11-27 23:29:30 · 746 阅读 · 1 评论 -
SVM入门(一)至(三)Refresh
(一)SVM的八股简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Ac转载 2016-12-18 16:49:03 · 239 阅读 · 0 评论 -
SVM入门(四)线性分类器的求解——问题的描述Part1
上节说到我们有了一个线性分类函数,也有了判断解优劣的标准——即有了优化的目标,这个目标就是最大化几何间隔,但是看过一些关于SVM的论文的人一定记得什么优化的目标是要最小化||w||这样的说法,这是怎么回事呢?回头再看看我们对间隔和几何间隔的定义:间隔:δ=y(wx+b)=|g(x)|几何间隔: 可以看出δ=||w||δ几何。注意到几何间隔与||w||是成反比的,因此转载 2016-12-18 16:59:52 · 248 阅读 · 0 评论 -
SVM入门(六)线性分类器的求解——问题的转化,直观角度
让我再一次比较完整的重复一下我们要解决的问题:我们有属于两个类别的样本点(并不限定这些点在二维空间中)若干,如图,圆形的样本点定为正样本(连带着,我们可以把正样本所属的类叫做正类),方形的点定为负例。我们想求得这样一个线性函数(在n维空间中的线性函数):g(x)=wx+b使得所有属于正类的点x+代入以后有g(x+)≥1,而所有属于负类的点x-代入后有g(x-)≤-1转载 2016-12-18 17:04:44 · 417 阅读 · 0 评论 -
SVM入门(七)为何需要核函数
生存?还是毁灭?——哈姆雷特可分?还是不可分?——支持向量机之前一直在讨论的线性分类器,器如其名(汗,这是什么说法啊),只能对线性可分的样本做处理。如果提供的样本线性不可分,结果很简单,线性分类器的求解程序会无限循环,永远也解不出来。这必然使得它的适用范围大大缩小,而它的很多优点我们实在不原意放弃,怎么办呢?是否有某种方法,让线性不可分的数据变得线性可分呢?有!其思想说来也转载 2016-12-18 17:05:44 · 354 阅读 · 0 评论 -
SVM入门(八)松弛变量
现在我们已经把一个本来线性不可分的文本分类问题,通过映射到高维空间而变成了线性可分的。就像下图这样: 圆形和方形的点各有成千上万个(毕竟,这就是我们训练集中文档的数量嘛,当然很大了)。现在想象我们有另一个训练集,只比原先这个训练集多了一篇文章,映射到高维空间以后(当然,也使用了相同的核函数),也就多了一个样本点,但是这个样本的位置是这样的: 就是图中黄色转载 2016-12-18 17:34:11 · 1025 阅读 · 0 评论 -
SVM入门(五)线性分类器的求解——问题的描述Part2
从最一般的定义上说,一个求最小值的问题就是一个优化问题(也叫寻优问题,更文绉绉的叫法是规划——Programming),它同样由两部分组成,目标函数和约束条件,可以用下面的式子表示:(式1)约束条件用函数c来表示,就是constrain的意思啦。你可以看出一共有p+q个约束条件,其中p个是不等式约束,q个等式约束。关于这个式子可以这样来理解:式中的x是自变量,但不限定它的维转载 2016-12-18 17:01:10 · 277 阅读 · 0 评论 -
SVM入门(九)松弛变量(续)
接下来要说的东西其实不是松弛变量本身,但由于是为了使用松弛变量才引入的,因此放在这里也算合适,那就是惩罚因子C。回头看一眼引入了松弛变量以后的优化问题:注意其中C的位置,也可以回想一下C所起的作用(表征你有多么重视离群点,C越大越重视,越不想丢掉它们)。这个式子是以前做SVM的人写的,大家也就这么用,但没有任何规定说必须对所有的松弛变量都使用同一个惩罚因子,我们完全可以给每一个离群转载 2016-12-18 17:39:59 · 312 阅读 · 0 评论 -
SVM入门(十)将SVM用于多类分类
从 SVM的那几张图可以看出来,SVM是一种典型的两类分类器,即它只回答属于正类还是负类的问题。而现实中要解决的问题,往往是多类的问题(少部分例外,例如垃圾邮件过滤,就只需要确定“是”还是“不是”垃圾邮件),比如文本分类,比如数字识别。如何由两类分类器得到多类分类器,就是一个值得研究的问题。还以文本分类为例,现成的方法有很多,其中一种一劳永逸的方法,就是真的一次性考虑所有样本,并求解一个多转载 2016-12-18 17:41:08 · 445 阅读 · 0 评论