zoukankan      html  css  js  c++  java
  • 贝叶斯-笔记(1)

    0 - 背景

    贝叶斯是个好东西(频率学派的不这么看),好多模型都可以从贝叶斯角度来解释,而且贝叶斯决策理论也是作为最优分类,给其他模型做错误上限什么的参照的。对于分类来说,在所有相关概率都已知的情况下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。然而贝叶斯又分朴素贝叶斯、半朴素贝叶斯、贝叶斯网等等。

    [P(X,Y)=P(X|Y)P(Y) ag{0.1} ]

    1 - 朴素贝叶斯

        所谓朴素贝叶斯,就是基于特征条件是相互独立的假设下,学习输入和输出的联合概率分布,所以它是一个生成模型。
        假设输入空间是(chi subseteq R^n)为n维向量的集合,输出空间是类别标记集合(标签)(y in cal Y).X是定义在输入空间(chi)上的随机向量,Y是定义在输出空间(cal Y)上的随机变量。P(X,Y)是X和Y的联合概率分布。假设训练集:

    [T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)} ]

    是由P(X,Y)独立同分布生成的。
    朴素贝叶斯就是通过训练集学习数据的联合概率分布,而因为可以通过贝叶斯公式转换成先求(P(Y=c_k)),(k=1,2,...,K)(P(X=x|Y=c_k)).而因为

    [P(X=x|Y=c_k)=P(X^{(1)},X^{(2)},...,X^{(n)}|Y=c_k) ]

    可以看出训练集每个特征之间是存在某种潜在关联的。如果特征还是连续值,那么基本上就是指数级的参数了。如果假设(x^{(j)})可取值有(S_j)个,j=1,2,..,n,Y取值有K个,那么参数个数为(Kprod_{j=1}^nS_j)
    朴素贝叶斯就是将其看成是相互独立的,因为这个假设条件很强,所以也是朴素贝叶斯的名字由来。即:

    [egin{eqnarray} P(X=x|Y=c_k) &=&P(X^{(1)}=x^{(1)},X^{(n)}=x^{(n)}|Y=c_k)\ &=&prod_{i=1}^nP(X^{(i)}=x^{(i)}|Y=c_k) end{eqnarray}]

    从而

    [egin{eqnarray}P(Y=c_k|X=x) &=&frac{frac{P(Y=c_k,X=x)}{P(X=x)}}{frac{sum_i^KP(Y=c_i,X=x)}{P(X=x)}}\ &=& frac{P(Y=c_k,X=x)}{sum_i^KP(Y=c_i,X=x)}\ &=& frac{P(X=x|Y=c_k)P(Y=c_k)}{sum_i^KP(X=x|Y=c_i)P(Y=c_i)}\ &=& frac{P(Y=c_k)prod_{i=1}^nP(X^{(i)}=x^{(i)}|Y=c_k)}{sum_i^KP(Y=c_k)prod_{i=1}^nP(X^{(i)}=x^{(i)}|Y=c_k)} end{eqnarray}]

    所以,取分类概率最大的那个类别,作为该样本的类别,即:

    [y=f(x)=argmax_{c_k}P(Y=c_k|X=x) ]

    因为分母对于每个类别概率比较都是无意义的,所以上面式子等同于:

    [y=argmax_{c_k}P(Y=c_k)prod_{i=1}^nP(X^{(i)}=x^{(i)}|Y=c_k) ]

    后验概率最大化含义
    朴素贝叶斯法将实例分到后验概率最大的类中,这等价于期望风险最小化。
    如我们选择一个0-1损失函数:

    [L(Y,f(X))= egin{cases} 1,& ext Y eq f(X) \ 0,& ext Y=f(X) end{cases}]

    其中(f(X))是分类决策函数,这时候,期望风险函数为:

    [R_exp(f)=E[L(Y,f(X))] ]

    ps:《概率论及其应用 第一卷第三版》170页:
    定义:令X为一个随机变量,其可能取值为(x_1,x_2,...),且其对应的概率为(f(x_1),f(x_2)),诺下列级数绝对收敛,则定义其为级数(X)的期望值或均值:

    [E(X)=sum x_kf(x_k) ]

    定理1: 任一函数(phi(x)),定义一个新的随机变量(phi(X)),如果(phi(X))具有有限期望值,则:

    [E(phi(X))=sumphi(x_k)f(x_k) ]

    回到期望风险函数,因为此时是给定一个测试样本,则(X=x)是固定的,则

    [R_exp(f) = sum_{k=1}^KL(c_k,f(x))P(c_k|x) ]

    为了使期望风险最小化,则是上式最小化,因为类别标签是有限个,所以等效于:

    [egin{eqnarray}f(x) &=&{argmin}_{y in cal Y}sum_{k=1}^KL(c_k,y)P(c_k|x)\ &=&argmin_{y in cal Y}sum_{k=1}^KP(y eq c_k|x)\ &=&argmin_{y in cal Y}(1-P(y=c_k|x))\ &=&argmax_{y in cal Y}P(y=c_k|x)\ &=&argmax_{c_k}P(c_k|x) end{eqnarray}]

    1.1 朴素贝叶斯学习过程

    经过上面的叙述,可以看出朴素贝叶斯学习过程,就是为了计算(P(Y=c_k))(P(X^{(j)}=x^{(j)}|Y=c_k))
    举例:如给定下面这个训练集,在测试样本为(x=(2,S)^T)时,求其预测的标签:

    上表中,(X^{(1)},X^{(2)})为特征,其离散取值集合为(A_1={1,2,3}),(A_2={S,M,L}),(Y)为类别标签,(Yin C={1,-1})
    先计算先验类别概率:

    [P(Y=1)=frac{9}{15},P(Y=-1)=frac{6}{15} ]

    然后计算条件概率:
    (P(X^{(1)}=1|Y=1)=frac{2}{9}),(P(X^{(1)}=2|Y=1)=frac{3}{9}),(P(X^{(1)}=3|Y=1)=frac{4}{9})
    (P(X^{(2)}=S|Y=1)=frac{1}{9}),(P(X^{(2)}=M|Y=1)=frac{4}{9}),(P(X^{(2)}=L|Y=1)=frac{4}{9})

    (P(X^{(1)}=1|Y=-1)=frac{3}{6}),(P(X^{(1)}=2|Y=-1)=frac{2}{6}),(P(X^{(1)}=3|Y=-1)=frac{1}{6})
    (P(X^{(2)}=S|Y=-1)=frac{3}{6}),(P(X^{(2)}=M|Y=-1)=frac{2}{6}),(P(X^{(2)}=L|Y=-1)=frac{1}{6})
    则对于测试样本(x=(2,S)^T),计算每个类别的概率,然后取概率最大的那个:

    [P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=frac{9}{15}frac{3}{9}frac{1}{9}=frac{1}{45} ]

    [P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=frac{6}{15}frac{2}{6}frac{3}{6}=frac{1}{15} ]

    由此,分到-1类别。
    贝叶斯估计
    因为如上的极大似然估计,会一定情况导致某些概率为0,这时候就会影响到概率计算了,所以为了避免这种情况,解决方法是贝叶斯估计.假设一共N个训练样本:(T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}),其中每个训练样本特征维度为n,(x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(n)})T)。当且其中第i个样本的第j个特征有离散取值集合有(S_j)个,为(x_i^{(j)}in {a_{j1},a_{j2},...,a_{jS_j}})
    1)条件概率的贝叶斯估计是:

    [P_lambda(X^{(j)}=a_{jl}|Y=c_k)=frac{sum_{i=1}^N I(x_i^{(j)}=a_{jl},y_i=c_k)+lambda}{sum_{i=1}^N I(y_i=c_k)+S_jlambda} ]

    即在原来的基础上:分子加一个常量,且分母加所有分子常量的和,从而保证新的公式能够满足概率的定义。当常量(lambda=1)时,称之为拉普拉斯平滑;
    对于先验概率的贝叶斯估计:

    [P_lambda(Y=c_k)=frac{sum_{i=1}^N I(y_i=c_k)+lambda}{N+Klambda} ]

    2017/03/27 第一次修改!
    参考资料:
    [] 李航,统计学习方法

  • 相关阅读:
    Oracle删除.dbf文件报错
    Java 7 新的 try-with-resources 语句,自动资源释放
    模式对话框提交form之后总是打开新的页面
    MyEclipse更改项目的发布目录
    IntelliJ IDEA 更换发布目录
    java.sql.SQLException: ORA-00942: 表或视图不存在
    编码那点事
    配置nginx实现windows/iis应用负载均衡
    MSMQ消息队列
    .NET 分布式技术比较
  • 原文地址:https://www.cnblogs.com/shouhuxianjian/p/9773097.html
Copyright © 2011-2022 走看看