2018-04-18第三周 svm深入学习+使用线性核函数写出demo+优化1:k折交叉验证

本周的任务是svm算法的学习以及做出一个简单的demo。

首先是我这一周的svm学习笔记

一、线性分类器

在进行文本分类的时候,我们可以让计算机这样来看待我们提供给它的训练样本,每一个样本由一个向量(就是那些文本特征所组成的向量)和一个标记(标示出这个样本属于哪个类别)组成。如下:

Di=(xi,yi)

xi就是文本向量(维数很高),yi就是分类标记。

  在二元的线性分类中,这个表示分类的标记只有两个值,1和-1(用来表示属于还是不属于这个类)。有了这种表示法,我们就可以定义一个样本点到某个超平面的间隔:

δi=yi(wxi+b)

   首先注意到如果某个样本属于该类别的话,那么wxi+b>0,而yi也大于0;若不属于该类别的话,那么wxi+b<0,而yi也小于0,这意味着yi(wxi+b)总是大于0的,而且它的值就等于|wxi+b|!(也就是|g(xi)|)

  现在把w和b进行一下归一化,即用w/||w||和b/||w||分别代替原来的w和b,那么间隔就可以写成


这个公式就是解析几何中点xi到直线g(x)=0的距离公式(||w||叫做向量w的范数,范数是对向量长度的一种度量。我们常说的向量长度其实指的是它的2-范数,范数最一般的表示形式为p-范数,可以写成如下表达式

向量w=(w1, w2, w3,…… wn) 

  它的p-范数为



  当用归一化的w和b代替原值之后的间隔有一个专门的名称,叫做几何间隔,几何间隔所表示的正是点到超平面的欧氏距离。以上是单个点到某个超平面的距离(就是间隔,后面不再区别这两个词)定义,同样可以定义一个点的集合(就是一组样本)到某个超平面的距离为此集合中离超平面最近的点的距离。下面这张图更加直观的展示出了几何间隔的现实含义:

H是分类面,而H1和H2是平行于H,且过离H最近的两类样本的直线,H1与H,H2与H之间的距离就是几何间隔。

  之所以如此关心几何间隔这个东西,是因为几何间隔与样本的误分次数间存在关系:

其中的δ是样本集合到分类面的间隔,R=max ||xi||

i=1,...,n,即R是所有样本中(xi是以向量表示的第i个样本)向量长度最长的值(也就是说代表样本的分布有多么广)。先不必追究误分次数的具体定义和推导过程,只要记得这个误分次数一定程度上代表分类器的误差。而从上式可以看出,误分次数的上界由几何间隔决定!


二、针对以上研究(部分笔记),我首先选用线性核进行demo的编写与尝试。由于在文献中读到,SVM做文本分类,一般用线性核就够了。因为文本的one-hot表示是一个高维,稀疏的矩阵,线性核已经足以在这个空间里分开不同的样本。而线性核的参数也比较简单,所以我打算首先使用线性核做一个尝试。

代码如下:


第一次尝试,结果不尽人如意,只有百分之六十多


优化1:看到网上说尝试改变验证方式,采用k折交叉验证法偶尔会有更好的结果,我就尝试了一下:


但是结果并没有特别大的起色,还在六十多


很难过,下周可能会尝试换一个核函数试试

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【概述】 SVM训练分类器的方法是寻找到超平面,使正负样本在超平面的两侧(分类正确性即“分得开”),且样本到超平面...
    sealaes阅读 13,851评论 0 7
  • 支持向量机:是一种监督式学习的方法,可广泛地应用于统计分类以及回归分析。支持向量机属于一般化线性分类器,这族分类器...
    Vince_zzhang阅读 5,108评论 0 0
  • 我看见过寂寞。 在烟火里,残缺的星点很是迷人。 我看见过寂寞。 在你痴痴的眼神里,怜悯得来不及保存。 我以为,看你...
    梵高先生_vogo阅读 1,639评论 0 3
  • 这个世界上最可怕的是明知道自己的所作所为给别人带来了麻烦还是恬不知耻的不知悔改
    追逐太阳的面包树阅读 1,562评论 0 1
  • Vue.js新手入门指南 最近在逛各大网站,论坛,以及像SegmentFault等编程问答社区,发现Vue.js异...
    joker731阅读 4,310评论 0 12

友情链接更多精彩内容