Andrew Ng机器学习笔记(五)——生成学习算法和朴素贝叶斯算法

1、生成学习算法

之前讲的回归模型属于判别模型,今天引入新的模型——生成学习算法:对训练集建立两个概率模型,测试特征代入两个模型比较哪个模型的最终概率高来判断类别(而不是计算出两个概率,而是比较两个概率)

利用贝叶斯概率得到两个模型的统一性:

对p(x|y)和p(y)建模后,根据贝叶斯公式p(y|x) = p(xy)/p(x) = p(x|y)p(y)/p(x),

其中,p(x) = p(x|y=0)p(y=0) +p(x|y=1)p(y=1)

比较两个模型的概率:


举例说明argmax函数:

min(x-5)^2=0

argmin(x-5)^2=5


2、高斯判别分析(其中一种生成学习算法)

多值高斯分布:

其概率密度函数为:


其中,u为期望,clip_image013为协方差矩阵。


协方差矩阵E[(x-μ)(x-μ)T]

其图形如下:


增加矩阵对角元素的值,即变量间增加相关性,高斯曲面会沿z1=z2(两个水平轴)方向趋于扁平。其水平面投影图如下:


而改变u,中心位置发生变化:


高斯判别分析:

假设:


即:


最大似然估计:


此处假设协方差相同,期望值不同,则只是中心位置不同。

求导后,可得各参数如下:


如图所示:


这就是所要的分类器。


3、高斯判别分析与logistic回归的关系


即:

当使用GDA模型时,p(x|y)属于高斯分布,计算p(y|x)时,几乎能得到和logistic回归中使用的sigmoid函数一样的函数。但实际上还是存在本质区别的。(逆推并不成立,因为高斯的假设更多)


4、Naive Bayes朴素贝叶斯模型

高斯判别分析里地变量x是连续的,当x是离散的,则采用朴素贝叶斯模型

比如判断邮件是否是垃圾邮件:

假设邮件出现“a”和“buy”,没有出现“aardvark”、“aardwolf”、“zygmurgt”,则表示为:


假设有5000个关键词,则又2^5000种可能。

假设给定y值时,xi是条件独立,也就是:


设置:




因此最大似然估计:


求解得:


所以我们要求的是:


朴素贝叶斯存在的问题

设有一封新邮件中出现一个字典没有的新词,设其标号为35000,因为这个词在垃圾邮件和非垃圾邮件中都不存在,则p(x3500|y=1)=0,p(x35000|y=0)=0,计算p(y=1|x)如下:



则结果是未定义的。

其问题在于,统计上认为p(x35000|y)=0是不合理的。即在过去两个月邮件里未出现过这个词,就认为其出现概率为0,并不合理。

概括来讲,即之前没有见过的事件,就认为这些事件不会发生,是不合理的。通过Laplace平滑解决这个问题。


5、Laplace平滑

根据极大似然估计,p(y=1) = #”1”s / (#”0”s + #”1”s),即y为1的概率是样本中1的数目在所有样本中的比例。Laplace平滑就是将分子分母的每一项都加1,,即:

p(y=1) = (#”1”s+1)  / (#”0”s+1 + #”1”s+1)

用公式表达如下:

在naive bayes中,

Laplace平滑中,

故bayes公式修正为:



更多阅读参考:判别模型、生成模型与朴素贝叶斯方法【机器学习-斯坦福】学习札记5 - 生成学习算法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值