机器学习-斯坦福:学习笔记6-朴素贝叶斯

朴素贝叶斯

本次课程大纲:

1、 朴素贝叶斯

-          朴素贝叶斯事件模型

2、 神经网络(简要)

3、 支撑向量机(SVM)铺垫 – 最大间隔分类器

 

复习:

1、 朴素贝叶斯

一种生成学习算法,对p(x|y)建模。

 

例:垃圾邮件分类

以邮件输入流作为输入,输出y为{0,1},1为垃圾邮件,0为非垃圾邮件。

将邮件文本表示为一个输入向量x

1)  xi∈{0,1},表示字典中的第i个词是否出现在邮件中

2)  x长度为n,n为字典的词数

3)  该模型称为多元伯努利事件模型 

假设xi在给定y的时候是条件独立的,则x在给定y下的概率可简化为:

根据朴素贝叶斯公式,求p(y|x)最大时的y:

 

算法变化版本:

1)  让xi取多个值,xi∈{1,2,…,k},类似上式有:p(x|y) = ∏ p(xi|y),但是p(xi|y)变成多项式分布,而不是伯努利分布。

 

例:估计房屋面积预测房屋能否被卖掉,将房屋面积分成几个离散区间,如0-,1000为xi=1,1000-1500为xi=2,1500-2000为xi=3,2000以上为xi=4

 

2)  如上例处理邮件(文本)中,x向量记录每个词出现的次数(而不是是否出现)

 

多项式事件模型

 

接上例,给出一封邮件,将它表示成特征向量:

ni表示邮件中词的数量,xj是个到词典的索引,表示该词在词典的位置。

 

如邮件中有300个词,那么特征向量x(i)长度为300,若词典有50000个词,每个元素xj的取值范围为{1,2,…,50000}

 

则生成模型的联合概率p(xy)为:

n为邮件长度

上式理解:邮件内容满足一些概率分布,有一些随机分布在生成这些邮件。过程为:首先确定y,即是否为垃圾邮件,决定一个人是否向你发送垃圾邮件后,遍历邮件的300个词,按照某种概率分布生成一些词,基于他们是否向你发送垃圾邮件

 

模型参数:

表示某人决定向你发送垃圾邮件(y=1)时,选择词k的概率,类似有:

 

给出训练集后,求极大似然估计:

得到:

上面第一个式子,分子的意思是,对所有标签为1的邮件求和,之后对垃圾邮件中的词k求和,所以分子实际上就是训练集中所有垃圾邮件中词k出现的次数。分母是训练集中所有垃圾邮件的长度。比值的含义就是所有垃圾邮件中,词k占的比例。表示生成垃圾邮件时选择词k的概率。

 

应用Laplace平滑,分子加1,分母加总词数(字典大小,xi可能取值的数目):

 

事实上,多项式事件模型比之前的模型要好,可能是因为考虑了词出现的次数这个因素。但此问题仍存在争论。

 

非线性分类算法

 

例:logistic回归中,假设值小于0.5预测0,大于0.5预测1。即给定一个训练集,logistic回归会找到一条直线(牛顿方法或梯度下降),将正负样本合理分开。但有时数据不能被一条直线分开,需要一种算法,学习非线性的分界线。

 

上一讲的推论:

x|y=1 ~ ExpFamily(η1),x|y=0 ~ ExpFamily (η0)  =>  p(y=1|x)是logistic函数

即x|y的分布属于指数分布族,可推出后验分布是logistic函数。

朴素贝叶斯模型也属于指数分布族,所以也是用logistic线性分类器。下面介绍一种非线性分类器。

 

2、 神经网络

假设特征是x0,x1,x2,x3,x0设置为1,用连线表示logistic回归单元,圆圈表示计算节点,下图中间的节点以x0等特征作为输入,hθ(x)作为输出,这是一个sigmoid函数。为了找到非线性的界限,需要找到一种方式,表示出能够输出非线性分界限的假设。

将之前画的小单元拼在一起,得到神经网络。特征输入到若干个sigmoid单元,在输入到另外一个sigmoid单元,得到输出。中间节点的输出值设为a1,a2,a3。这些中间节点称为隐藏层,神经网络可以由多个隐层。

 

每个中间节点有一系列参数:

a2,a3同理。g为sigmoid函数。最终的输出值为:

其中,a向量由a1,a2,a3组成。

一种学习模型参数的方法是,利用成本函数J(θ),使用梯度下降使J(θ)最小。即用梯度下降使得神经网络的预测结果和你观察到的训练集中的样本标签尽可能接近。在神经网络中,这种方法称为反向传播。

 

3、 支撑向量机铺垫 – 最大间隔分类器

另外一种能生成非线性分类器的学习算法。本节课先介绍另外一类线性分类器,在下一讲或者下下讲中,利用支撑向量机的想法,进行一些巧妙的改动和扩展,让它可以生成非线性分界线。

 

两种对于分类的直观理解:

1)       考虑logistic回归,计算θTx:

输出1  <=> θTx>=0;输出0  <=> θTx<0

如果θTx>>0,相当确定的预测y=1;如果θTx<<0,相当确定的预测y=0

对于所有的i,如果y=1,θTx(i)>>0,如果y=0,θTx(i)<<0,那么我们认为分类器是良好的。即如果我们根据训练集找到了参数,我们的学习算法不仅需要保证分类结果正确,更要进一步保证分类结果的确定性。

2)       假设训练集是线性可分割的,即一定有一条直线可以将训练集分开。那么直观来看,我们一定会选择和正负样本都有一定距离的直线。后面讲到分类器的几何间隔时,再正式讨论。

 

支撑向量机中改动的符号:

输出y∈{-1,+1}

h输出的假设值也改为{-1,+1}

g(z) = { 1 , 如果z>=0;  -1, 如果z<0}

之前在使用式:hθ(x)=g(θTx)时,假设x0=1且x为n+1维向量,现在忽略这两个假设,表示为:hw.b(x)=g(wTx+b),这里的b相当于原来的θ0,w相当于原来θ除去θ0剩余部分,长度为n维。将截距b单提出来,方便引出支撑向量机。

 

函数间隔

一个超平面(w,b)和某个特定训练样本(x(i),y(i))对应的函数间隔定义为:

参数(w,b)定义了一个分类器,例如定义了一个线性分界线。

如果y(i)=1,为了获得较大的函数间隔,需要令wTx(i)+b >> 0;

如果y(i)=-1,为了获得较大的函数间隔,需要令wTx(i)+b << 0

如果y(i)(wTx(i)+b) > 0,意味着分类结果正确

 

一个超平面(w,b)和整个训练集的函数间隔定义为:

即相对于整个训练集的函数间隔定义为所有相对于样本的函数间隔的最坏情形(上述讲到,分界线距离样本越远效果越好)。

 

几何间隔:

几何距离定义为:一个训练样本对应的点到由超平面确定的分隔线的距离。如下图A到分隔线的距离AB就是几何距离。

和分隔线垂直的单位向量表示为:w/||w||,AB这段距离表示为γ(i),γ上有小三角表示函数间隔,没有表示几何间隔。若A点表示x(i),那么点B表示为:

由于点B在分隔线上,它应该还满足:

可以解出:

上式说明,对于一个训练样本x(i),到由参数w和b确定的分隔平面之间的距离,可以由上式得到。

 

由于上述一直假设对样本进行了正确的分类,所以更一般的,将几何间隔定义为:

这个定义和函数间隔很相似,不同点是对向量w进行了标准化。同样,希望几何间隔也是越大越好。

 

结论:如果||w||=1,函数间隔等于几何间隔。更一般的,几何间隔等于函数间隔除以||w||。

 

一个超平面(w,b)和整个训练集的几何间隔定义为:

和函数间隔类似,取样本中最小的几何间隔。

 

最大间隔分类器可以看做是支撑向量机的前身,是一种学习算法,选择特定的w和b,使几何间隔最大化。最大分类间隔是下述这样的优化问题:

即选择γ,w,b是γ最大,同时满足条件:所选取的最大几何间隔必须保证每个样本的结合间隔至少为γ。

 

最大间隔分类器的效果和logistic回归结果差不多好,深入研究这个分分类器,可以用一种更巧妙的方法让其支持无限维的特征空间,得到有效的非线性分类器。

转载于:https://www.cnblogs.com/boqun1991/p/4417680.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值