(一)朴素贝叶斯多项式事件模型

在上篇笔记中,那个最基本的NB模型被称为多元伯努利事件模型(Multivariate Bernoulli Event Model,以下简称 NB-MBEM)。该模型有多种扩展,一种是在上一篇笔记中已经提到的每个分量的多值化,即将p(xi|y)由伯努利分布扩展到多项式分布;还有一种在上一篇笔记中也已经提到,即将连续变量值离散化。本文将要介绍一种与多元伯努利事件模型有较大区别的NB模型,即多项式事件模型(Multinomial Event Model,一下简称NB-MBEM)。
首先 ,NB-MEM改变了特征向量的表示方法。在 NB-MBEM中,特征向量的每个分量代表词典中该index上的词语是否在文本中出现过,其取值范围为{0,1},特征向量的长度为词典的大小。而在 NB-MEM中,特征向量中的每个分量的值是文本中处于该分量的位置的词语在词典中的索引,其取值范围是{1,2,...,|V|},|V|是词典的大小,特征向量的长度为相应样例文本中词语的数目。
形式化表示为:
m个训练样本表示为:{x(i),y(i);i=1,...,m}
 
x(i)=(x1(i),x2(i),...,xni(i))
表示第i个样本中,共有ni个词,每个词在字典的编号xj(i)。
举例来说,在NB-MBEM中,一篇文档的特征向量可能如下所示:

其在NB-MEM中的向量表示则如下所示:

在NB-MEM中,假设文本的生成过程如下:

1、确定文本的类别,比如是否为垃圾文本、是财经类还是教育类;
 
2、遍历文本的各个位置,以相同的多项式分布生成各个词语,生成词语时相互独立。
 
由上面的生成过程可知,NB-MEM假设文本类别服从多项式分布或伯努利分布,而词典中所有的词语服从多项式分布。生成过程还可如下解释,即现在类别所服从的多项式分布中选取类别,然后遍历整个文本,在词语所服从的多项式分布中选取词语,放在文本中相应的位置上。
 
于是,NB-MEM的参数如下所示:

于是,我们可以得到参数在训练集上的极大似然估计:
 

极大化似然估计函数,可以得到各个参数的极大似然估计:


在φk|y=1和φk|y=0
上使用Laplace平滑,得到公式如下:


其中,|V|为词典的大小。
与以前的式子相比,分母多了个ni,分子由0/1变成了k。
对于式子


 分子的意思是对所有标签为1的邮件求和,即只考虑垃圾邮件,之后对垃圾邮件中的所有词求和,它加起来应该是词k出现在垃圾邮件中的次数。

换句话说,分子实际上就是对训练集合中的所有垃圾邮件中词k出现的次数进行求和。
 
分母的含义是对训练样本集合进行求和,如果其中的一个样本是垃圾邮件(y=1),那么就把它的长度加起来,所以分母的含义是训练集合中所有垃圾邮件的总长。
所以这个比值的含义就是在所有垃圾邮件中,词k所占的比例。
 
举个例子:

假如邮件中只有a,b,c这三个词,他们在词典的位置分别是1,2,3,前两封邮件都只有两个词,后两封有3个词。
Y=1是垃圾邮件。
那么,


假如新来一封邮件为b,c,那么特征表示为{2,3}

那么


那么该邮件是垃圾邮件概率是0.6。

注意这个公式与朴素贝叶斯的不同在于这里针对整体样本求的φk|y=1
,而朴素贝叶斯里面针对每个特征求的φxj=1|y=1
,而且这里的特征值维度是参差不齐的。
(二)神经网络
 
之前介绍的无论是感知器算法还是逻辑回归还是刚才所介绍的朴素贝叶斯模型(朴素贝叶斯算法是前置假设是多项式分布的多项式模型,所以也属于逻辑回归模型),其最终结果反映在数据上都是一条直线或一个超平面,但如果数据并不是线性可分的话,这些模型的性能会变差。针对该问题,涌现出很多对非线性可分数据进行分类的算法,神经网络是其中最早出现的一种。
 
对于逻辑回归模型,可以将其表示为下图所示:


其中,xi是输入的特征向量的各个分量,sigmoid是计算单元,output是函数输出。sigmoid计算单元有参数θ,其函数形式为:


而神经网络则是将这样的计算单元组合起来,如下图所示:


其中,a1,a2,a3是中间单元的输出。可以看到,该图所示的神经网络有四个参数,分别为四个sigmoid单元的参数。这些参数之间的关系如下式所述:

学习这些参数需要用到成本函数比如:

这是第一次视频里就提到的二次成本函数(quadratic cost
function),可以使用梯度下降方法最小化成本函数来求得参数,在神经网络中的梯度下降算法有一个专门的名称叫做反向传播算法。
 
在上面那个神经网络的样例图中,与输入直接相连的称为隐藏层(hidden
layer),与输出直接项链的称为输出层(output
layer)。神经网络算法的一大特点就在于不知道隐藏层计算的东西的意义,另一个特点在于神经网络有比较多的局部最优值,可以通过多次随机设定初始值然后运行梯度下降算法获得最优值。
 
接着,展示了两个神经网络实现的应用的视频。一个是Hammerton数字识别应用,对手写的数字进行识别,该应用的作者是Yann
LeCun,他以字符识别与卷积神经网络而著名。另外一个应用则是NETtalk神经网络,使用神经网络来阅读文本,作者是Terry
J.Sejnowski。
 
(三)支持向量机之函数间隔与几何间隔
 
要理解支持向量机(support Vector
Machine),必须先了解函数间隔与几何间隔。一下假设数据集是线性可分的。
 
首先变换一下符号,类别y可取值由{0,1}变为{-1,1},假设函数g为:


而目标函数h也由:
变为:
其中,公式15中x,θ εRn+1
,且x0=1。而在公式16中,x,ω εRn
,b取代了公式15中x0的作用。

由公式16,我们得知,ω,b可以唯一的确定一个超平面。
 
一个点(x(i),y(i))到由ω,b决定的超平面的函数间隔是:

超平面与整个训练集合的函数间隔是:


公式17还有一个性质,即对于正确分类的数据点,函数间隔不小于0。

函数间隔的问题在于只要成倍增大ω,b,就能使函数间隔变大。为了解决这个问题,就有了几何间隔的定义,几何间隔定义如下:

即在||ω||=1条件下函数间隔最小值。
 
几何间隔与函数间隔的意义在于为根据训练集合得到的模型增添了一个指标,使得模型不仅保证分类结果的正确性,更要进一步保证分类结果的确定性。

Stanford大学机器学习公开课(六):朴素贝叶斯多项式模型、神经网络、SVM初步的更多相关文章

  1. Andrew Ng机器学习公开课笔记 -- 朴素贝叶斯算法

    网易公开课,第5,6课 notes,http://cs229.stanford.edu/notes/cs229-notes2.pdf 前面讨论了高斯判别分析,是一种生成学习算法,其中x是连续值 这里要 ...

  2. Stanford大学机器学习公开课(五):生成学习算法、高斯判别、朴素贝叶斯

    (一)生成学习算法 在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布.如二分类问题,不管是感知器算法还是逻辑回归算法,都是在解 ...

  3. Stanford大学机器学习公开课(四):牛顿法、指数分布族、广义线性模型

    (一)牛顿法解最大似然估计 牛顿方法(Newton's Method)与梯度下降(Gradient Descent)方法的功能一样,都是对解空间进行搜索的方法.其基本思想如下: 对于一个函数f(x), ...

  4. Stanford大学机器学习公开课(三):局部加权回归、最小二乘的概率解释、逻辑回归、感知器算法

    (一)局部加权回归 通常情况下的线性拟合不能很好地预测所有的值,因为它容易导致欠拟合(under fitting).如下图的左图.而多项式拟合能拟合所有数据,但是在预测新样本的时候又会变得很糟糕,因为 ...

  5. Stanford大学机器学习公开课(二):监督学习应用与梯度下降

    本课内容: 1.线性回归 2.梯度下降 3.正规方程组   监督学习:告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案   1.线性回归 问题引入:假设有一房屋销售的数据如下: 引 ...

  6. LR 算法总结--斯坦福大学机器学习公开课学习笔记

    在有监督学习里面有几个逻辑上的重要组成部件[3],初略地分可以分为:模型,参数 和 目标函数.(此部分转自 XGBoost 与 Boosted Tree) 一.模型和参数   模型指给定输入xi如何去 ...

  7. 【机器学习】文本分类——朴素贝叶斯Bayes

    朴素贝叶斯主要用于文本分类.文本分类常见三大算法:KNN.朴素贝叶斯.支持向量机SVM. 一.贝叶斯定理 贝叶斯公式思想:利用已知值来估计未知概率.已知某条件概率,如何得到两个事件交换后的概率,也就是 ...

  8. 机器学习算法实践:朴素贝叶斯 (Naive Bayes)(转载)

    前言 上一篇<机器学习算法实践:决策树 (Decision Tree)>总结了决策树的实现,本文中我将一步步实现一个朴素贝叶斯分类器,并采用SMS垃圾短信语料库中的数据进行模型训练,对垃圾 ...

  9. 机器学习---用python实现朴素贝叶斯算法(Machine Learning Naive Bayes Algorithm Application)

    在<机器学习---朴素贝叶斯分类器(Machine Learning Naive Bayes Classifier)>一文中,我们介绍了朴素贝叶斯分类器的原理.现在,让我们来实践一下. 在 ...

随机推荐

  1. 与Java Web Service相关的若干概念(JAX-WS,JAX-RS)

    WS ,JAX-WS ,JAX-RS,REST,Restlet,SOAP l  JWS: 是指与webservice相关的J2EE(其实现在应该叫做Java EE吧)技术叫做 JWS(全称就是 jav ...

  2. java判断list为空

    isEmpty()判断有没有元素而size()返回有几个元素 list.isEmpty()和list.size()==0 没有区别 list!=null跟!list.isEmpty()有什么区别? 这 ...

  3. POJ1745Divisibility(01背包思想)

    Divisibility Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11151   Accepted: 3993 Des ...

  4. WEB开发中的页面跳转方法总结

    PHP header()函数跳转 PHP的header()函数非常强大,其中在页面url跳转方面也调用简单,使用header()直接跳转到指定url页面,这时页面跳转是302重定向: $url = & ...

  5. 如何调试R程序(转载)

    R语言的调试重要性不言而喻,这段时间准备改进一个R的包,但由于接触R时间不长,中间的很多东西不懂,需要重新打包调试,以对里面的很多程序有深入了解,下面从几个方面分享一下我的收获. 1.准备工作 a)R ...

  6. javascript正则——贪婪匹配

    熟悉正则的朋友都知道,正则的匹配有“贪婪”和“非贪婪”之分. “贪婪”匹配是尽可能多的匹配: 对于字符串‘aaaa’, /a+/匹配整个字符串,而非贪婪匹配/a+?/匹配的是整个字符串的第一个‘a’, ...

  7. AngularJS--学习笔记(一)

    AngularJS官方网站提供了一个用于学习的示例项目:PhoneCat.这是一个Web应用,用户可以浏览一些Android手机,了解它们的详细信息,并进行搜索和排序操作. 对于PhoneCat项目的 ...

  8. 键盘上各键对应的ASCII码与扫描码

    键盘上各键对应的ASCII码与扫描码 vbKeyLButton 0x1 鼠标左键vbKeyRButton 0x2 鼠标右键vbKeyCancel 0x3 CANCEL 键vbKeyMButton 0x ...

  9. xcode6 使用MJRefresh

    1. MJRefreshConst.m 里面 会报错: unknown type 'NSString'... 原因:  xcode6 取消.pch文件, 所以没有导入 foundation和uikit ...

  10. Firefox渗透测试黑客插件集

    前天看S哥用Firefox的hackbar进行手动注入进行渗透,觉得直接运用浏览器的插件进行渗透测试有很多优点,既可以直接在前端进行注入等操作,也可以省却了寻找各种工具的麻烦.前端还是最直接的!于是这 ...