高斯判别分析和朴素贝叶斯分类器
2014-03-26 21:04
162 查看
因为自己的数学功底非常差,所以只能从工程应用的角度来看这两个智能学习算法。
分类模型分为判别模型和生成模型:
判别模型的思路是我先根据已知的数据生成一个分类器,遇到要分类的对象,我们首先提取这个对象的特征,然后把这些特征放入之前的分类器中,从而得到分类结果。
生成模型的思路是假定我要把所有数据分成A,B两类,那么我根据已知属于A类的数据,来生成一个代表A类的模型,再根据已知属于B类的数据,生成一个代表B类的模型。当遇到要分类的对象时,我把这个对象的特征提取出来,分别放到A类模型和B类模型中计算,得到两个概率,哪个的概率大,那么这个对象就属于哪类。
![](http://img.blog.csdn.net/20140326211253406?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcG9pNzc3Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
从贝叶斯公式中来看,等式左边就代表了判别模型,等式右边就代表了生成模型,这两个模型在数学上是统一的。在生成模型中,由于P(X)可以由P(X|Y=0),P(X|Y=1)以及P(Y)计算出来。(这里假定是二分类)
所以能写出他们通用的概率密度函数为:
![](http://img.blog.csdn.net/20140326211431062)
在假定二分类的前提下,把所有的概率密度函数写出来就是:
![](http://img.blog.csdn.net/20140326211501968)
这里P(Y)之所以服从伯努利分布是因为二分类的前提。
我们的最终目标就是计算出这三个等式的值,最后根据贝叶斯公式得到P(Y|X)的值,所以我们必须求出这三个等式中的未知量。
求概率密度函数中的未知量让我们很自然就想到了用最大似然估计来做。以下就是用似然估计得到的结果:
![](http://img.blog.csdn.net/20140326211548281)
这样我们就可以用高斯判别分析来进行分类了。
朴素贝叶斯分类器在模型上也属于生成模型,除此之外,它还有个很苛刻的假设:条件独立。什么是条件独立?举个例子来讲,我们要把所有的对象分成A,B两个类别,A类别有1,2,3,4这四个特征,条件独立就是说1,2,3,4这四个特征之间没有任何关系,我们不能从某个对象身上的1这个特征,而推断出这个对象上有2这个特征的概率会变大或变小。
如果满足了这个条件,那么以下的式子就成立了(假定有50000个特征):
![](http://img.blog.csdn.net/20140326211658015)
同样,我们要计算出P(X|Y=0),P(X|Y=1)以及P(Y)的值,写出具体的模型(就是一开始说的A类模型和B类模型):
![](http://img.blog.csdn.net/20140326211823453)
然后用最大似然估计求出这三个值为:
![](http://img.blog.csdn.net/20140326211836078)
然后再算出P(Y|X),就行了。
另外,因为朴素贝叶斯分类的计算用的乘法,所以它对于数据稀疏是很敏感的,想一想如果那么多的乘数里面如有有一个是0,那么将导致整个求解都出现问题。
为了解决这个问题,拉普拉斯在分子上加了1,在分母上加了分类的数量如下:
![](http://img.blog.csdn.net/20140326211850734)
这样,就避免了以上的问题,人们把这个方法叫做拉普拉斯平滑。
分类模型分为判别模型和生成模型:
判别模型的思路是我先根据已知的数据生成一个分类器,遇到要分类的对象,我们首先提取这个对象的特征,然后把这些特征放入之前的分类器中,从而得到分类结果。
生成模型的思路是假定我要把所有数据分成A,B两类,那么我根据已知属于A类的数据,来生成一个代表A类的模型,再根据已知属于B类的数据,生成一个代表B类的模型。当遇到要分类的对象时,我把这个对象的特征提取出来,分别放到A类模型和B类模型中计算,得到两个概率,哪个的概率大,那么这个对象就属于哪类。
从贝叶斯公式中来看,等式左边就代表了判别模型,等式右边就代表了生成模型,这两个模型在数学上是统一的。在生成模型中,由于P(X)可以由P(X|Y=0),P(X|Y=1)以及P(Y)计算出来。(这里假定是二分类)
高斯判别分析
高斯判别分析从分类上来讲属于生成模型,因此它主要也是采用了生成模型的思路来进行分类。除此之外,高斯判别分析还假设待分类的每一类对象都服从高斯分布。所以能写出他们通用的概率密度函数为:
在假定二分类的前提下,把所有的概率密度函数写出来就是:
这里P(Y)之所以服从伯努利分布是因为二分类的前提。
我们的最终目标就是计算出这三个等式的值,最后根据贝叶斯公式得到P(Y|X)的值,所以我们必须求出这三个等式中的未知量。
求概率密度函数中的未知量让我们很自然就想到了用最大似然估计来做。以下就是用似然估计得到的结果:
这样我们就可以用高斯判别分析来进行分类了。
朴素贝叶斯分类器
第一次接触朴素贝叶斯分类是在《集体智慧编程》这本书上,里面讲的非常浅显易懂,值得初学者去看一看。朴素贝叶斯分类器在模型上也属于生成模型,除此之外,它还有个很苛刻的假设:条件独立。什么是条件独立?举个例子来讲,我们要把所有的对象分成A,B两个类别,A类别有1,2,3,4这四个特征,条件独立就是说1,2,3,4这四个特征之间没有任何关系,我们不能从某个对象身上的1这个特征,而推断出这个对象上有2这个特征的概率会变大或变小。
如果满足了这个条件,那么以下的式子就成立了(假定有50000个特征):
同样,我们要计算出P(X|Y=0),P(X|Y=1)以及P(Y)的值,写出具体的模型(就是一开始说的A类模型和B类模型):
然后用最大似然估计求出这三个值为:
然后再算出P(Y|X),就行了。
另外,因为朴素贝叶斯分类的计算用的乘法,所以它对于数据稀疏是很敏感的,想一想如果那么多的乘数里面如有有一个是0,那么将导致整个求解都出现问题。
为了解决这个问题,拉普拉斯在分子上加了1,在分母上加了分类的数量如下:
这样,就避免了以上的问题,人们把这个方法叫做拉普拉斯平滑。
相关文章推荐
- 高斯判别分析和朴素贝叶斯
- 机器学习笔记五 - 生成学习算法、高斯判别分析、朴素贝叶斯、拉普拉斯平滑
- 生成模型、高斯判别分析、朴素贝叶斯——斯坦福CS229机器学习个人总结(二)
- 生成模型中的高斯判别分析和朴素贝叶斯
- 机器学习—高斯判别分析、朴素贝叶斯和逻辑回归
- 机器学习第四篇(stanford大学公开课学习笔记) —生成型学习算法之高斯判别分析模型和朴素贝叶斯方法
- Stanford机器学习课程笔记2-高斯判别分析与朴素贝叶斯
- 第5节-高斯判别分析和朴素贝叶斯
- 生成学习算法、高斯判别分析与朴素贝叶斯模型
- 高斯判别分析(GDA)和朴素贝叶斯(NB)
- [置顶] 生成学习算法、高斯判别分析、朴素贝叶斯、Laplace平滑——斯坦福ML公开课笔记5
- Stanford机器学习课程笔记2-高斯判别分析与朴素贝叶斯
- 线性判别分析(二)——Bayes最优分类器的角度看LDA
- 斯坦福机器学习: 网易公开课系列笔记(五)——高斯判别分析、朴素贝叶斯
- 斯坦福大学机器学习——高斯判别分析
- 朴素贝叶斯分类器简单实现文本情感分析
- 生成学习算法(Generative Learning):GDA(高斯判别)和Navie Bayes(朴素贝叶斯)(一)
- 机器学习(八):CS229ML课程笔记(4)——生成学习,高斯判别分析,朴素贝叶斯
- ML—高斯判别分析
- 机器学习教程 之 朴素贝叶斯分类器:判别皮马印第安糖尿病人数据集