深入浅出朴素贝叶斯法(Naive Bayes)
来源:互联网 发布:大亚湾网络问政 编辑:程序博客网 时间:2024/06/05 16:27
写在前面的介绍和感悟(…)
- 做项目时,遇到了瓶颈,试了也有五六个算法,停下来,仔细分析一下原理,再轻装上阵。(采用bayes和svm开始是当做一个baseline…)
- 朴素贝叶斯,朴素的含义在与对输入数据的特征做了独立性假设,简化了模型。贝叶斯顾名思义,采用了贝叶斯定理。一句话总结,基于贝叶斯定理和独立假设的分类方法。
- 这篇文章介绍朴素贝叶斯的基本学习过程,MAP(最大化后验概率),参数估计的MLE(极大似然估计)和贝叶斯估计,就其中的一些重要推倒提出自己的理解(也曾疑惑)。
1.基本学习过程
Naive Bayes学习过程可以分为两步走。一是基于条件独立假设学习输入和输出的联合概率分布。二是利用贝叶斯定理及MAP假设求后验概率。
联合分布p(X,Y) 的计算
- 这一步可以转换为求先验概率分布(
p(Y=ck) )及条件概率分布(p(X=x|Y=ck) ,也称为似然概率)。 - 这里应用到了条件概率的公式,简单介绍一下,其实贝叶斯定理也是基于此得出的。 —————>
p(A|B)=P(AB)p(B) —————>p(AB)=p(A|B)p(B)=p(B|A)p(A) p(B|A)=p(A|B)p(B)p(A)(贝叶斯公式) - 先验概率分布
p(Y=ck),k=1,2,...,K ,简单理解就是训练样本中每一类别的概率。 - 条件概率分布
p(X=x|Y=ck)=p(X(1)=x(1),X(2)=x(2),...,X(n)=x(n)|Y=ck),k=1,2,...,K - 条件独立假设
假设内容是所有的数据特征在给定类别的条件下都是独立的。公式表示如下:p(X=x|Y=ck)=p(X(1)=x(1),X(2)=x(2),...,X(n)=x(n)|Y=ck)=∏j=1np(X(j)=x(j)|Y=ck)
基于此,大大简化了条件概率的计算。直接计算,p(X=x|Y=ck) 有指数量级的参数,很难计算。模型中的朴素也是由此得来。
后验概率p(Y=ck|X) 的计算
- 根据贝叶斯定理计算后验概率
贝叶斯公式的推导和条件独立的说明在上文,这里会用到。简单介绍一下全概率公式,假设B1,B2,…,Bn为事件B的完备集划分,即它们的并集为B但又互相无交集。则有和B独立的事件A可以表示为:p(A)=∑Kk=1p(X=x|Y=ck)p(Y=ck) 。由此可以得出p(X)=∑ni=1p(A|Bi)p(Bi) 。
完整的推导过程如下:p(Y=ck|X=x)=p(X=x|Y=ck)p(Y=ck)p(x)=p(Y=ck)∏nj=1p(X(j)=x(j)|Y=ck)∑ni=1p(A|Bi)p(Bi) - 最大化后验概率
于是根据MAP假设,可将贝叶斯分类器表示为:y=f(x)=argmaxp(Y=ck)∏nj=1p(X(j)=x(j)|Y=ck)∑ni=1p(A|Bi)p(Bi)
可以进一步简化为(分母不变):y=argmaxP(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)
2.参数估计方法
1.MLE(极大似然估计)
这里和一般意义上的MLE不一样,需要一个小trick理解一下。先看看一般的MLE过程:
关于MLE(极大似然估计),就是假定随机变量不变,最大化似然函数对参数做出估计,简单介绍一下两种类型(连续和离散)的似然函数的求解方法。
离散型:
L(θ)=L(x1,x2,...,xn;θ)=∏i=1np(xi;θ)
连续性:
L(θ)=L(x1,x2,...,xn;θ)=∏i=1nf(xi;θ)
形式看起来特别像,都是累乘的形式,只不过离散的是分布的累乘,而连续的是概率密度的累乘。实际应用中,一般用到的是对数似然函数 ,就是利用到log函数的性质(和的对数等于对数的积),方便运算。小trick就是参数的理解,bayes的参数其实就是先验概率和似然概率(条件分布概率)!!!因此好多参考资料中这样写到:
先验概率估计:
P(Y=ck)=∑Ni=1I(yi=ck)N
其中I(yi=ck) 是指示函数,当括号内条件满足时,值为1。N为样本总数。其实就是该类样本数除以样本总数~
似然概率(条件概率)估计:
假设第j个特征x(j) 可能的取值集合为{aj1,aj2,...,a(jsj) }P(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)=ajli,yi=ck)∑Ni=1I(yi=ck)
其中j=1,2,..,n; l=1,2,…,Sj ; k=1,2,…,K。简单理解就是给定类别ck 时某一特征取特定值的概率。
2.贝叶斯估计
极大似然估计存在一个问题就是会出现估计的概率值为0的情况,会影响到后验的计算,从而导致误分类。贝叶斯通过加入一个正则项$\lambda\gt0$解决了这一问题,也可以把贝叶斯估计看做是正则化的极大似然估计。
- 条件概率的贝叶斯估计:
Pλ(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)=ajli,yi=ck)+λ∑Ni=1I(yi=ck)+Sjλ
通过给每一个取值加上一个正数,避免了取值为0的情况。 - 先验概率的贝叶斯估计:
P(Y=ck)=∑Ni=1I(yi=ck)+λN+Kλ
3.最大化后验概率假设-MAP的理解
naive bayes最后将实例分到后验概率最大的类中,这么做的原理其实是期望风险最小化,即期望风险最小化等价于后验概率最大化。
- 推导过程:
损失函数定义如下:L(Y,f(X))={1,0,Y≠f(X)Y=f(X)
期望风险函数:Rexp(f)=E(L(Y,f(X))
接下来,取条件期望:Rexp(f)=Ex∑k=1KL(ck,f(X))P(ck|X)
这里好多资料基本都一带而过,也是我比较疑惑的地方。我的理解是,从公式本身来看,应该是已知X对类别Y的条件期望。
对X=x逐个极小化:f(x)=argmin∑k=1KL(ck,y)P(ck|X=x)=argmin∑k=1KP(y≠ck|X=x)=argmin∑k=1K(1−P(y=ck|X=x))=argmax∑k=1KP(y=ck|X=x)
至此,就完成了期望风险最小化到后验概率最大化的等价转换!
- 写在前面的介绍和感悟
- 基本学习过程
- 联合分布pXYpXY的计算
- 后验概率pYckXpYc_kX的计算
- 参数估计方法
- MLE极大似然估计
- 贝叶斯估计
- 最大化后验概率假设-MAP的理解
阅读全文
0 0
- 深入浅出朴素贝叶斯法(Naive Bayes)
- 朴素贝叶斯法naive Bayes
- 朴素贝叶斯法(Naive Bayes)
- 机器学习 - 朴素贝叶斯法(Naive Bayes)
- <统计学习方法>3 朴素贝叶斯法(Naive Bayes)
- Naive Bayes朴素贝叶斯
- 朴素贝叶斯(Naive Bayes)
- 朴素贝叶斯(naive bayes)
- 朴素贝叶斯(naive bayes)
- 2.朴素贝叶斯Naive Bayes
- 朴素贝叶斯(Naive-Bayes)介绍
- 朴素贝叶斯(naive Bayes)
- Naive Bayes 朴素贝叶斯算法
- 朴素贝叶斯(Naive Bayes)
- 朴素贝叶斯入门---Naive Bayes
- 朴素贝叶斯(Naive Bayes)
- Naive Bayes(朴素贝叶斯)
- 朴素贝叶斯(Naive Bayes),“Naive”在何处?
- Java多线程学习(吐血超详细总结)
- FPGA在其他领域的应用(二)
- 快速搭建ssh框架--ideamac版
- 构造方法传参数
- 软件测试(一)
- 深入浅出朴素贝叶斯法(Naive Bayes)
- Android基础入门1
- IO流(二)和异常处理
- VS2012使用DirectShow时找不到qedit.h的问题
- QEMU编译及使用方法
- Call to unavailable function 'system': not available on iOS
- linux下堆溢出实验和一些tips
- 哈哈日语 日语学习基础入门----五十音(二)
- 匹配数组、元组