您的位置:首页 > 其它

机器学习:贝叶斯_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。在训练数据较多的时候逻辑回归取得更好的效果,而当训练数据较少时朴素贝叶斯可能效果更好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: