徐海蛟博士 Teaching.从 SVM的那几张图可以看出来,SVM是一种典型的两类分类器,即它只回答属于正类还是负类的问题。而现实中要解决的问题,往往是多类的问题(少部分例外,例如垃圾邮件过滤,就只需要确定“是”还是“不是”垃圾邮件),比如文本分类,比如数字识别。如何由两类分类器得到多类分类器,就是一个值得研究的问题。  还以文本分类为例,现成的方法有很多,其中一种一劳永逸的方法,就是真的一次性
前面几节我们讨论了SVM原理、求、够看到在原始空间中你想用一个直线分类面划分开来是不可能了,除非圆。而当你把数据点映射一下成右图所看到的的情况后,如今数据点
转载 2017-08-07 16:46:00
226阅读
2评论
SVM非线性分类原理实验 一、总结 一句话总结: 到更高维度去找可以分类的超平面(无限维度的平面中必然可分) 二、
转载 2020-07-13 04:55:00
257阅读
2评论
徐海蛟博士 Teaching.支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy
转载 精选 2013-10-05 12:06:15
472阅读
徐海蛟博士 Teaching.我们实验环境:libsvm 3.17, python 2.7.3, gnuplot 4.6。数据集从小到大: dna 生物dna, satp_w_picpath 卫星图像, letter 字母。数据已经下载到了svm-数据/下。我们看下数据集基本情况:名称源类型 类数训练样本测试样本特征数----------------------------------------
原创 2013-10-15 10:42:07
518阅读
最基本的SVM(Support Vector Machine)旨在使用一个超平面,分离线性可分的二类样本,其中正反两类分别在超平面的一侧。SVM算法则是要找出一个最优的超平面。 下面从简单到复杂介绍三种SVM形式,然后介绍一种快速优化SVM的算法,最后用SVM实现人脸识别。 线性可分SVM 优化函数
原创
2021-12-27 17:05:56
762阅读
徐海蛟博士 Teaching.光说不练,很难真正理解svm的妙处,也难以真正实用。所以,有必要跟着徐海蛟老师一起练习svmsvm理论和工具已经很成熟了。童鞋们并不需要手写每一行代码。一个非常好用的开发工具包是LibSVM,支持C++、Java、Matlab语言。libSVM只是众多SVM实现版本中的其中之一。LibSVM是台湾大学林智仁(Chih-Jen Lin) 教授2001年开发的一套svm
翻译 精选 2013-10-11 21:51:55
730阅读
徐海蛟博士 Teaching.  之前一直在讨论的线性分类器,器如其名(汗,这是什么说法啊),只能对线性可分的样本做处理。如果提供的样本线性不可分,结果很简单,线性分类器的求解程序会无限循环,永远也解不出来。这必然使得它的适用范围大大缩小,而它的很多优点我们实在不原意放弃,怎么办呢?是否有某种方法,让线性不可分的数据变得线性可分呢?  有!其思想说来也简单,来用一个二维平面中的分类问题作例子,你一
翻译 精选 2013-10-10 16:28:20
341阅读
1点赞
徐海蛟博士 Teaching.现在我们已经把一个本来线性不可分的文本分类问题,通过映射到高维空间而变成了线性可分的。就像下图这样:  圆形和方形的点各有成千上万个(毕竟,这就是我们训练集中文档的数量嘛,当然很大了)。现在想象我们有另一个训练集,只比原先这个训练集多了一篇文章,映射到高维空间以后(当然,也使用了相同的核函数),也就多了一个样本点,但是这个样本的位置是这样的:  就是图中黄色那个点,它
徐海蛟博士 Teaching.我教学学习的libsvm版本是3.17最新版。应用3.17最新版自带的训练集heart_scale来完成第一个实验,该训练集样本数:270,特征数:13。童鞋们跟我一起玩。1. 把LibSVM包解压到相应的目录,比如 D:/lab/libsvm/。2. 在电脑“开始”的“运行”中输入cmd,进入DOS命令提示符环境。定位到d:/lab/libsvm/windows/下
徐海蛟博士 Teaching.回想一下C所起的作用(表征你有多么重视离群点,C越大越重视,越不想丢掉它们)。这个式子是以前做SVM的人写的,大家也就这么用,但没有任何规定说必须对所有的松弛变量都使用同一个惩罚因子,我们完全可以给每一个离群点都使用不同的C,这时就意味着你对每个样本的重视程度都不一样,有些样本丢了也就丢了,错了也就错了,这些就给一个比较小的C;而有些样本很重要,决不能分类错误(比如中
徐海蛟博士Teaching.要判断SVM效果,以图形的方式输出的分解线是最直观的。LibSVM自带了一个可视化的程序svm-toy,用来输出类之间的分界线。他是先把样本文件载入,然后进行训练,通过对每个像素点的坐标进行判断,看属于哪一类,就附上那类的颜色,从而使类与类之间形成分割线。这个在第13课讲述过了。如何自己DIY编程输出分界线呢?分界线,其实严格说来是分界超平面。要绘分界线,就要用到训练结
徐海蛟博士 Teaching线性分类器(一定意义上,也可以叫做感知机) 是最简单也很有效的分类器形式.在一个线性分类器中,可以看到SVM形成的思路,并接触很多SVM的核心概念.  用一个二维空间里仅有两类样本的分类问题来举个小例子。如图所示  C1和C2是要区分的两个类别,在二维平面中它们的样本如上图所示。中间的直线就是一个分类函数,它可以将两类样本完全分开。一般的,如果一个线性函数能够将样本完全
翻译 精选 2013-10-09 21:07:05
289阅读
徐海蛟博士 Teaching.数据集如下:名称源类型 类数训练样本测试样本特征数----------------------------------------------------------------scene景色MB04a多标签61,2111,196294yeast酵母AE02a多标签141,500917103svm-train ../svm-data/scene scene.model
徐海蛟博士 Teaching.上节说到我们有了一个线性分类函数,也有了判断解优劣的标准——即有了优化的目标,这个目标就是最大化几何间隔,但是看过一些关于SVM的论文的人一定记得什么优化的目标是要最小化||w||这样的说法,这是怎么回事呢?回头再看看我们对间隔和几何间隔的定义:  间隔:δ=y(wx+b)=|g(x)|  几何间隔:  可以看出δ=||w||δ几何。注意到几何间隔与||w||是成反比
翻译 精选 2013-10-10 12:03:32
174阅读
(一)SVM的背景简单介绍支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出很多特有的优势,并可以推广应用到函数拟合等其它机器学习问题中[10]。支持向量机方法是建立在统计学习理论的VC 维理论和...
徐海蛟博士 Teaching对于文本分类这样的不适定问题(有一个以上解的问题称为不适定问题),需要有一个指标来衡量解决方案(即我们通过训练建立的分类模型)的好坏,而分类间隔是一个比较好的指标。  在进行文本分类的时候,我们可以让计算机这样来看待我们提供给它的训练样本,每一个样本由一个向量(就是那些文本特征所组成的向量)和一个标记(标示出这个样本属于哪个类别)组成。如下:  Di=(xi,yi)  
翻译 精选 2013-10-09 21:50:07
321阅读
转载 2015-06-11 15:57:00
166阅读
1评论
徐海蛟博士 Teaching.libSVM有一个tools文件夹,里面包含有四个python文件,是用来对参数优选的。其中,常用到的是easy.py和grid.py两个文件。这里,我们以Python 2.7环境为例,加以说明。需要安装python 2.7和绘图工具gnuplot 4.6(让数据可视化)。并将<python安装目录>添加于%PATH%环境变量。pythone是一种编程语言
徐海蛟博士 Teaching.libsvm可用grid.py(grid的意思是:网格)这个网格搜索python程序帮我们自动完成参数选择。这里,给童鞋们上课说说交叉验证与网格搜索。1. 交叉验证交叉验证是一种评估统计分析、机器学习算法对独立于训练数据的数据集的泛化能力,能够避免过拟合问题。交叉验证一般要尽量满足: 1)训练集的比例要足够多,一般大于一半(>50%) 2)训练集和测试集要均匀抽
  • 1
  • 2
  • 3
  • 4
  • 5