zoukankan      html  css  js  c++  java
  • 【机器学习具体解释】概率生成模型与朴素贝叶斯分类器

    转载请注明出处http://blog.csdn.net/luoshixian099/article/details/51028244

    1.概率生成模型

    首先介绍生成模型的概念,然后逐步介绍採用生成模型的步骤。

    1.1概念

    即对每一种类别Ck分别建立一种数据模型p(x|Ck)。把待分类数据x分别带入每种模型中,计算后验概率p(Ck|x),选择最大的后验概率相应的类别。

    如果原始数据样本有K类,生成学习算法是通过对原始数据类p(x|Ck)p(Ck)建立数据类模型后,採用贝叶斯定理从而得出后验概率p(Ck|x)。对待分类样本x分别计算属于每一个类别的后验概率p(Ck|x),取最大可能的类别。

    arg max(k)=p(Ck|x)=p(x,Ck)p(x)=p(x|Ck)p(Ck)jp(x|Cj)p(Cj)

    • 二分类的情况:(K=2)

      p(C1|x)=p(x,C1)p(x)=p(x|C1)p(C1)p(x|C1)p(C1)+p(x|C2)p(C2)=11+exp(α)=σ(α)
      当中α=lnp(x|C1)p(C1)p(x|C2)p(C2);函数σ(α)=11+exp(α)称为sigmoid函数。

    • 多类的情况:(K>2)
      多分类的情况,是二分类的扩展,称为softmax函数。同样採用贝叶斯定理:

      p(Ck|x)=p(x|Ck)p(Ck)jp(x|Cj)p(Cj)=exp(αk)jexp(αj)

      当中αk=lnp(x|Ck)p(Ck)

    1.2高斯分布如果

    对于连续变量x,我们首先如果给定详细类条件下数据密度函数p(x|Ck)分布服从多维高斯分布。同一时候全部类别p(x|Ck)具有同样的协方差矩阵
    这里写图片描写叙述
    二维高斯分布。同样方差,不同期望的三个图形。
    这里写图片描写叙述

    • 二分类情况K=2
      把多维高斯分布公式带入上述相应的贝叶斯公式得:
      这里写图片描写叙述
      注意到sigmoid函数參数是关于数据x的线性函数
      下图是2维数据的高斯分布图形:
      这里写图片描写叙述
    • 多分类的情况K>2
      多维高斯分布函数带入softmax函数得:
      这里写图片描写叙述
      注意:αk(x)也是关于样本数据x的线性函数

    实际上,不管是连续型数据还是以下将要介绍的离散型数据(朴素贝叶斯分类),仅仅要如果的分布属于指数簇函数,都有广义线性模型的结论。

    K=2时为sigmoid函数:參数λ为模型的固有參数
    这里写图片描写叙述
    K>2时为softmax函数:
    这里写图片描写叙述


    1.3模型參数的求解

    在如果了数据类密度函数p(x|Ck)的情况下,以下须要对模型的參数进行求解。

    比如,上述如果了数据为高斯分布,须要计算先验概率p(Ck)及參数μk, .我们採用最大化释然函数的方法求解:
    考虑二分类的情况:样本数据为(xn,tn)。样本总量为N,tn=1属于C1类,总数为N1tn=0属于C2类,总数为N2.如果先验概率p(C1)=π;则p(C2)=1π
    释然函数:这里写图片描写叙述
    分别求偏导数并令为0,得:
    这里写图片描写叙述
    这里写图片描写叙述
    这里写图片描写叙述
    这里写图片描写叙述

    2.朴素贝叶斯分类器(NBC)

    2.1概念

    朴素贝叶斯分类器是生成学习算法的一种。考虑一个样本x=(x1,x2,x3...xD),有D个特征,每一个特征xi取值为有限的离散值,这时须要对p(x|y)建立模型。朴素贝叶斯算法做了一种非常强的如果:即给定类别y=c的情况下。每种特征之间相互独立,即有p(x1|y,x2)=p(x1|y);p(x1,x2|y)=p(x1|y)p(x2|y)所以有:
    这里写图片描写叙述
    条件类概率p(x|y)可依据数据类型建立不同的形式:

    • 当样本数据x取实数值为时,採用高斯分布:p(x|y=c,θ)=Dj=1N(xj|μjc,σ2jc)
    • 当每种特征xj{0,1}时,採用伯努利分布p(x|y=c,θ)=Dj=1Ber(xj|μjc)
    • 当每种特征取值xj{1,2,3,...,K},能够採用multinoulli distribution:p(x|y=c,θ)=Dj=1Cat(xj|μjc)

    2.2文本分类

    朴素贝叶斯尽管做了非常强的特征独立性如果,却对在文本分类的情况效果非常好。
    首先收集全部样本数据中出现过的词,建立一个有序字典,长度为D。对待分类文本x依据字典建立一个长度为D词向量,x=(x1,x2,x3,....,xD),每种特征xj{0,1}。即xj=1表示字典中第j个词在此文本中出现过;反之,xj=0表示字典中第j个词没有在文本中出现过,採用伯努利分布p(x,y)=p(y)p(x|y)=p(y)Dj=1Ber(xj|μjc)
    定义:ϕi|y=0=p(xi=1|yi=0),ϕi|y=1=p(xi=1|yi=1),ϕy=p(y=1)
    释然函数:
    这里写图片描写叙述
    最大释然预计得:
    这里写图片描写叙述
    训练出模型后,对待分类样本依据贝叶斯定理。计算每种类别的后验概率,选择最大的后验概率类别:
    这里写图片描写叙述

    2.3拉普拉斯平滑

    在对文本分类的情况下,假如我们训练分类器採用的训练文本全部xj都为0时。这时模型參数ϕj|y=0=0,ϕj|y=1=0。这时如果须要对待一个文本x分类且xj=1,依据上述朴素贝叶斯方法,得到每种后验概率都为0,即p(y=1|x)=0,P(y=0|x)=0。这是因为上述乘法的缘故,根本原因是ϕj|y=0=0,ϕj|y=1=0。因为样本量有限,预測某个事件的发生概率为0,也是不准确的。
    为了解决这样的情况。能够模型參数的分子加上1,同一时候保持和为1。,称为拉普拉斯平滑。
    这里写图片描写叙述
    这里写图片描写叙述

    參考:PRML&&MLAPP

  • 相关阅读:
    python信息收集(二)
    python信息收集(一)
    'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte
    Loadruner 之 controller 负载生成器与场景运行——性能测试
    chromedriver 在pycharm 中的使用
    selenium 安装
    在Linux 中搭建 Mysql
    前端攻略
    2020-5-22 第二期——拖延症
    2020-5-15 第一期
  • 原文地址:https://www.cnblogs.com/llguanli/p/8634599.html
Copyright © 2011-2022 走看看