机器学习:贝叶斯_2:朴素贝叶斯
2016-04-06 22:15
239 查看
风险函数
设损失函数为L(Y,f(X))L(Y,f(X)), 损失函数小,模型越好;设模型的输入输出(X,Y)(X, Y)是随机变量,遵循联合分布P(X,Y)P(X, Y) ,损失函数的期望Rexp(f)=Ep[L(Y,f(X))]=∫x∗yL(y,f(x))P(x,y)dxdyR_{exp}(f)=E_p[L(Y,f(X))]=\int_{x*y} L(y,f(x)) P(x,y)dxdy
上式为风险函数或者是期望损失
给定数据集T=(x1,y1),.....,(xN,yN)T={(x_1,y_1),.....,(x_N,y_N)}
模型f(X)关于训练集的平均损失函数称为经验风险
Remp(f)=1N∑Ni=1L(yi,f(xi))R_{emp}(f)=\frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i))
利用RempR_{emp}估计RexpR_{exp}
朴素贝叶斯
根据贝叶斯与特征条件独立假设的分类算法http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html
假设某个体有n项特征(Feature),分别为F1、F2、…、Fn。现有m个类别(Category),分别为C1、C2、…、Cm。贝叶斯分类器就是计算出概率最大的那个分类,也就是求下面这个算式的最大值:
算法
设数据集 T=(x1,y1),.....,(xN,yN)T={(x_1,y_1),.....,(x_N,y_N)} 由P(X,Y)P(X,Y)独立同分布产生。朴树贝叶斯通过:
先验概率分布:P(Y=ck)P(Y=c_k)
条件概率分布P(X=x|Y=ck)=P(X(1)=x(1),......,X(n)=x(n)|Y=ck)P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)} ,......, X^{(n)}=x^{(n)}|Y=c_k)
学习联合概率分布P(X,Y)P(X,Y)
朴素贝叶斯对条件概率分布做了条件独立性的假设:
P(X=x|Y=ck)=P(X(1)=x(1),......,X(n)=x(n)|Y=ck)=P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)} ,......, X^{(n)}=x^{(n)}|Y=c_k)=
∏j=1nP(X(j)=x(j)|Y=ck)\prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)
条件独立假设=分类的特征在类确定的条件下是条件独立的
朴素贝叶斯分类,对于给定的输入x,通过学习到的模型计算后验概率分布P(Y=ck|X=x)P(Y=c_k| X=x),将后验概率最大的类作为x的类输出。后验概率:
P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)∑kP(X=x|Y=ck)P(Y=ck)P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)}
带入
P(X=x|Y=ck)=P(X(1)=x(1),……,X(n)=x(n)|Y=ck)=∏j=1nP(X(j)=x(j)|Y=ck)P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)} ,……, X^{(n)}=x^{(n)}|Y=c_k)=
\prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)
=>
P(X=x|Y=ck)=∏j=1nP(X(j)=x(j)|Y=ck)P(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)∑kP(Y=ck)P(X=x|Y=c_k)=\frac{\prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)P(Y=c_k)}{\prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)\sum_k P(Y=c_k)}
=> 朴素贝叶斯分类
y=f(x)=arg maxckP(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)∑P(Y=ck)∏jP(X(j)=x(j)|Y=ck)y=f(x)=arg \ max_{c_k}\frac{P(Y=c_k)\prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum P(Y=c_k) \prod\limits_j P(X^{(j)}=x^{(j)}|Y=c_k)}
=>分母相同所以
y=f(x)=arg maxckP(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)y=f(x)=arg \ max_{c_k}P(Y=c_k)\prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)
后验概率最大化
等价于0-1损失函数时的期望风险最小化拉普拉斯平滑
避免00\frac{0}{0}的异常p(x1|c1)=n1np(x_1|c_1)=\frac{n_1}{n}
拉普拉斯平滑
P(x1|c1)=n1+1n+NP(x_1|c_1)=\frac{n_1+1}{n+N}
贝叶斯和逻辑回归
逻辑回归直接估计P(Y|X)的参数,而朴素贝叶斯则通过估计参数P(Y)和P(X|Y)。我们经常把前者称为判别式(discriminative)后者称为生成式(generative)分类器。如果GNB(特征独立性)的前提满足,那么理论上(随着训练数据数目增大到无限)逻辑回归和朴素贝叶斯其实是相同的分类器。两种算法的不同之处是:
如果GNB前提不满足。那么理论上他们是不同的分类学习functions,逻辑回归要比假定GNB的朴素贝叶斯更精确。尽管逻辑回归与朴素贝叶斯一样假定输入的特征X_{i}满足相对Y的条件无关性,但是当数据不满足的时候,CLM(conditional likelihood maximization)算法会调整参数来适应数据,即使结果参数与朴素贝叶斯假设不一致。
两种算法收敛速度不一样。假设X的维度是n,那么GNB收敛复杂度是\log(n)个examples,而逻辑回归需要n
个examples。在训练数据较多的时候逻辑回归取得更好的效果,而当训练数据较少时朴素贝叶斯可能效果更好。
相关文章推荐
- oracle11g 从云上迁移落到本地
- 线段树
- 0406复利计算5.0
- 用图说明Activity的各个阶段
- 2016/4/6微软实习练习题
- 实用的图片轮播js代码可直接引用不需要设置css样式
- 前端学习的工具
- 2016携程测试实习生笔试编程题
- JNI NDK开发(一)
- Android开发-简单的登陆界面
- Exchange Server 2013 部署的系统要求
- Exchange Server 上针对Client端的策略设置
- 多态、虚函数、动态绑定的关系
- rpm package installed problem
- Consumer group理解深入
- (1) arm 指令格式
- JVM分析演进
- SPOJ PHRASES 每个字符串至少出现两次且不重叠的最长子串
- H2
- 前缀表达式、中缀表达式、后缀表达式