机器学习 Generative Learning Algorithm (B)
来源:互联网 发布:淘宝上的呼死你叫什么 编辑:程序博客网 时间:2024/06/10 07:53
Naive Bayes
在GDA模型中,特征向量
我们先考虑一个例子,用机器学习的方法建立一个垃圾邮件过滤器,我们希望用一种算法来甄别邮件的信息以确定该邮件是不是垃圾邮件,通过学习这个算法,我们将能建立自己的垃圾邮件过滤器帮我们对邮件进行分类,邮件分类只是一系列我们称之为文本分类中的一种。
首先假设我们有一个训练集(包括了垃圾邮件和正常的邮件),我们用特征向量
现在,我们想建立一个分类模型来决定该邮件是不是垃圾邮件。所以我们要估计p(x|y),假设一封邮件有5000个单词,那么该特征向量就是5000维,即
为了更方便的估计p(x|y),我们要做一个强一点的假设,我们假设邮件里的单词,即
因此,我们有:
这个模型可以由
我们可以得到训练数据的联合概率
利用最大似然估计,可以得到:
上式中,符号
最后,我们要注意,虽然我们提出的Naive Bayes 算法处理的是二值化的特征向量,但是对于多个离散值的情况,我们可以用多项式分布代替伯努利分布对
Laplace Smoothing
Naive Bayes学习算法可以很好地处理很多分类问题,接下来,我们要讨论如何对该算法做一点小小地改进让它更好地工作,特别是处理文本分类问题。在介绍这个改进之前,我们先来看一个问题。
假设我们用Naive Bayes算法建立了一个分类器对邮件进行分类,对一封邮件的单词进行判断从而确定该邮件是否垃圾邮件。如果有一封新邮件,里面含有一个从未见过的单词,即在训练样本里面从未出现过的单词,我们假设该单词在字典里的顺序为
因为训练集里的样本邮件(不管是不是垃圾邮件)都没有这个单词,所以估计得参数
因为
为了避免这个尴尬的问题,我们可以利用Laplace Smoothing, 则新的概率估计为:
可以看到,我们在分子,分母上分别加了一个常数,这样可以避免概率为0,而在实际的应用中,因为对训练集中对垃圾邮件和非垃圾邮件的划分通常比较合理,所以参数
Event models for text classification
最后,在结束Generative Learning 学习算法之前,我们再介绍一种针对文本分类问题的模型,虽然 Naive Bayes 算法可以很好地处理很多分类问题,但是对于文本分类,还有一种更加好的模型。
之前介绍的特定语境的文本分类问题,这里介绍的Naive Bayes算法用的是我们称之为\textbf{multi-variate Bernoulli event model},在这个模型中,我们对一封邮件,先根据先验概率p(y)计算其为垃圾邮件的概率,然后把这封邮件用事先建立好的字典进行检索,将出现的单词计算其概率
接下来,我们将介绍另外一种更加高效的模型,称为multinomial event model, 为了描述这个模型,我们使用不同的注释和特征来表示一封邮件。我们定义
这个模型我们需要计算的参数有
如果给定一组训练样本
利用最大似然估计,可以得到
如果我们利用Laplace Smoothing估计
这个就是multinomial event model的概率估计。
参考文献
Andrew Ng, “Machine Learning”, Stanford University.
- 机器学习 Generative Learning Algorithm (B)
- 机器学习 Generative Learning Algorithm (A)
- 关于机器学习中的生成学习算法(Generative Learning Algorithm)
- generative learning algorithm
- Generative learning algorithm
- 机器学习系列-Generative Learning Algorithms
- 5 Generative Learning algorithms ,Discriminative algorithm
- CS229 Lecture Notes(4): Generative Learning Algorithm
- 机器学习之Perceptron Learning Algorithm
- [Machine Learning] Generative learning algorithm-GDA and NB
- 斯坦福公开课Machine Learning笔记(四)--Generative Learning Algorithm
- 机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)
- PLA(Perceptron Learning Algorithm)--机器学习基石笔记
- [台大机器学习笔记整理]perceptron learning algorithm
- 机器学习 - 感知机(PLA, Perceptron Learning Algorithm)
- 机器学习基石2-2 PLA(Perceptron Learning Algorithm)
- 机器学习基石 2.2 Perceptron Learning Algorithm (PLA)
- 生成学习算法Generative Learning algorithms
- wamp下安装php_memche扩展
- DNS原理及其解析过程
- 文章标题
- 高并发之Memcached实战第10课-“Memcached Get获取数据”部分代码分享2
- 黑马程序员——零基础学习iOS开发——07 全局变量、局部变量、static和extern关键字
- 机器学习 Generative Learning Algorithm (B)
- iOS7 tabbar遮盖tableview的cell解决方法
- GTK - 如何去掉背后的黑色的控制台窗口?
- 【3.22】
- 不建立临时变量 交换两个数字
- 安卓AutoFitTextView实例Dmeo分享自适应
- [不定项选择题]
- Android bound service 详解三:使用Messenger
- 关于websocket的协议和应用