zoukankan      html  css  js  c++  java
  • 第四章-朴素贝叶斯朴素吗?

    你觉得朴素贝叶斯朴素吗? 个人觉得,一点也不朴素,如同“平凡出真知”,朴素贝叶斯还是很挺厉害的。如果想要了解朴素贝叶斯,那么需要先了解贝叶斯估计极大似然估计

    极大似然估计

    对于一个数据集T服从概率分布P,但是P中参数未知,针对极大似然估计,就是将未知参数看作一个定值,从而找未知参数能使得数据集T发生的概率最大。

    [极大似然估计:\ 假设某个数据集T(x_1,x_2,...,x_n)服从正态分布X~N(mu,sigma^2),但是某具体参数 heta未知,\ 如何通过极大似然估计得到hat{ heta}使得随机样本出现的概率最大?\ 求解过程:(1) 正态分布下mu的极大似然估计是:\ f(x)=frac{1}{sqrt{2pi}sigma}e^{-frac{(x-mu)^2}{2sigma^2}}\ (2)损失函数:L(mu)=prod_{i=1}^nfrac{1}{sqrt{2pi}sigma}e^{-frac{(x_i-mu)^2}{2sigma^2}}\ (3)取对数:ln L(mu)=-nln(sqrt{2pi})frac{1}{2sigma^2}sum_{i=1}^n(x_i-mu)^2 \ (4)求导:frac{partial ln L(mu)}{partial mu}=-frac{1}{sigma^2}sum_{i=1}^n(x_i-mu)^2 \ (5)令导数为0:frac{partial ln L(mu)}{partial mu}=0 => hat{mu}=frac{1}{n}sum_{i=1}^n x_i = overline{x} ]

    贝叶斯估计

    相比较贝叶斯估计,极大似然估计会出现概率为0的情况。

    [假设样本D(x_1,x_2...x_n)是正态分布N(mu,sigma^2),其中sigma^2已知。\ 假设mu的先验分布是正态分布N(0, au^2),如果每个样本的概率独立且同步分布,那么贝叶斯估计?\ (1)第一步:假设数据集D的全概率为P(D),那么p(mu|D) = frac{P(D|mu)P(mu)}{P(D)},\ 其中P(mu)是服从N(0, au^2)分布的先验概率,从而得到L(mu): L(mu)=P(mu|D)=frac{P(D|mu)P(mu)}{P(D)}\ =frac{P(mu)P(x_1|mu)P(x_2|mu)...P(x_n|mu)}{int P(mu,x_1,x_2,...x_n)dmu},由此看出int P(mu,x_1,x_2,...x_n)dmu是一个常数,可以记作K。\ = Kfrac{1}{sqrt{2pi} au}e^{-frac{mu^2}{2 au^2}} prod_{i=1}^nfrac{1}{sqrt{2pi}sigma} e^{-frac{(x_i-mu)^2}{2sigma^2}} \ (2) 第二步:取对数。ln P(mu|D)=-frac{mu^2}{2 au^2} K + sum_{i=1}^n(-frac{(x_i-mu)^2}{2sigma^2})\ (3) 第三步:求导。frac{partial ln}{partial mu}=-frac{mu}{ au^2} + sum_{i=1}^n(-frac{(x_i-mu)}{sigma^2})\ (4)第四步:令导数为0。可得到:hat{mu}=frac{sum_{i=1}^n x_i}{n+frac{sigma^2}{ au^2}}\ 由此可以看出,当n ightarrow infty,贝叶斯估计概率和极大似然估计概率是差不多的,\ 但是如果n ightarrow 0,贝叶斯估计不会等于0,相对而言,更加精确些。 ]

    朴素贝叶斯法

    朴素贝叶斯(Native Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。

    朴素贝叶斯实际上学习到的是生成数据机制,因此属于生成模型

    朴素贝叶斯法的基本假设是条件独立性。

    朴素贝叶斯模型

    [设输入空间chi subseteq R^n为n维向量的集合,输出空间维类标记集合Y=(c_1,c_2,..c_K)。\ 输入为特征向量x in chi,输出标记yin Y,P(X,Y)是X和Y的联合概率分布。\ 训练数据集T={(x_1,y_1),(x_2,y_2),...(x_N,y_N)}。\ 朴素贝叶斯分类时,对给定的输入x,朴素贝叶斯分类器模型如下:\ y=f(x)=arg maxfrac{P(Y=c_K)prod_jP(X^{(j)}=x^{(j)}|Y=c_K)}{sum_K P(Y=c_K)prod_jP(X^{(j)}=x^{(j)}|Y=c_K)} ]

    损失函数

    朴素贝叶斯法将实例分到后验概率最大的类中,这损失函数正符合0-1损失函数。根据期望风险最小化准则得到后验概率最大化准则:

    [f(x)=arg max_{c_K} P(c_K|X=x) ]

    参数估计就是采用上面刚开始谈到的极大似然估计贝叶斯估计

    朴素贝叶斯算法

    [输入:训练数据集T={(x_1,y_1),(x_2,y_2),...(x_N,y_N)},其中x_i=(x_i^{(1)},x_i^{(2)},...x_i^{(n)})^T,\ x_i^{(j)}表示第i个样本的j个特征,x_i^{(j)} in {a_{j1},a_{j2}...a_{jS_j}},\ a_{jl}是第j个特征可能取得第l个值,j=1,2..n,l=1,2,..S_j,y_i in {c_1,c_2,...c_K};实例x; 输出:实例x的分类。\ (1)计算先验概率以及每个条件概率\ P(Y=c_K)=frac{sum_{i=1}^N I(y_i=c_K)}{N},k=1,2,...K \ P(X^{(j)}=a_{jl}|Y=c_K)=frac{sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_K)}{sum_{i=1}^NI(y_i=c_K)},j=1,2...n;l=1,2,..S_j;k=1,2,...K \ (2) 计算每个标签下的实例的概率 \ P(Y=c_K)prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_K),k=1,2...K \ (3)确定的实例x的类。\ y=arg max_{c_K} P(Y=c_K)prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_K) ]

    在朴素贝叶斯估计中,条件概率的贝叶斯估计是:

    [P_{lambda}(X^{(j)}=a_{jl}|Y=c_K)=frac{sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_K)+lambda}{sum_{i=1}^NI(y_i=c_K)+S_jlambda} \ 当lambda geq 0,等价于在随机变量上各个取值的频数上赋予一个正数lambda。\ 当lambda=0,贝叶斯估计等于极大似然估计。常取lambda=1,这时称为拉普拉斯平滑(Laplace Smoothing)。此时有:\ P_{lambda}(X^{(j)}=a_{jl}|Y=c_K) > 0 \ sum_{l=1}^{S_j} P(X^{(j)}=a_{jl}|Y=c_K) = 1P_{lambda}(X^{(j)}=a_{jl}|Y=c_K)=frac{sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_K)+lambda}{sum_{i=1}^NI(y_i=c_K)+S_jlambda} \ 当lambda geq 0,等价于在随机变量上各个取值的频数上赋予一个正数lambda。\ 当lambda=0,贝叶斯估计等于极大似然估计。常取lambda=1,这时称为拉普拉斯平滑(Laplace Smoothing)。此时有:\ P_{lambda}(X^{(j)}=a_{jl}|Y=c_K) > 0 \ sum_{l=1}^{S_j} P(X^{(j)}=a_{jl}|Y=c_K) = 1 ]

    先验概率的贝叶斯估计是:

    [P_{lambda}(Y=c_K) = frac{sum_{i=1}^N I(y_i=c_K)+lambda}{N+Klambda},k=1,2,3...K,l=1,2,3...S_j ]

    小结

    朴素贝叶斯是在条件独立性的基础上的,由于这一假设,模型包含的条件概率的数量大大减少,朴素贝叶斯法的学习与预测大为简化。因此朴素贝叶斯法高效,且易于实现,缺点就是分类的性能不一定很高

  • 相关阅读:
    记录idea run dashboard设置 (微服务项目多服务启动)
    记录Java8中的字符串转数组再通过指定符号拼接
    Java 调用底层接口的几种方法
    工作两个月以后的感想
    几种开源工作流引擎的简单比较
    labin编译的另一种方式
    最近参加一个团队创业项目的感触
    gof设计模式——生成器c++实现
    gof设计模式——抽象工厂 c++实现
    几种开源网络爬虫的简单比较
  • 原文地址:https://www.cnblogs.com/cecilia-2019/p/11332276.html
Copyright © 2011-2022 走看看