美文网首页
DataWhale-02-朴素贝叶斯

DataWhale-02-朴素贝叶斯

作者: evanzh7 | 来源:发表于2020-04-22 00:51 被阅读0次
  • 相关概念

    • 生成模型
      在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。它给观测值和标注数据序列指定一个联合概率分布。在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。条件概率分布可以由生成模型根据贝叶斯定理形成。常见的基于生成模型算法有高斯混合模型和其他混合模型、隐马尔可夫模型、随机上下文无关文法、朴素贝叶斯分类器、AODE分类器、潜在狄利克雷分配模型、受限玻尔兹曼机。

      举例:利用生成模型是根据好瓜的特征首先学习出一个好瓜的模型,然后根据坏瓜的特征学习得到一个坏瓜的模型,然后从需要预测的瓜中提取特征,放到生成好的好瓜的模型中看概率是多少,在放到生产的坏瓜模型中看概率是多少,哪个概率大就预测其为哪个。

    • 判别模型
      在机器学习领域判别模型是一种对未知数据 y 与已知数据 x 之间关系进行建模的方法。判别模型是一种基于概率理论的方法。已知输入变量 x ,判别模型通过构建条件概率分布 P(y|x) 预测 y 。常见的基于判别模型算法有逻辑回归、线性回归、支持向量机、提升方法、条件随机场、人工神经网络、随机森林、感知器。

      举例:要确定一个瓜是好瓜还是坏瓜,用判别模型的方法是从历史数据中学习到模型,然后通过提取这个瓜的特征来预测出这只瓜是好瓜的概率,是坏瓜的概率。

    • 生成模型vs判别模型:生成模型是所有变量的全概率模型,而判别模型是在给定观测变量值前提下目标变量条件概率模型。因此生成模型能够用于模拟(即生成)模型中任意变量的分布情况,而判别模型只能根据观测变量得到目标变量的采样。判别模型不对观测变量的分布建模,因此它不能够表达观测变量与目标变量之间更复杂的关系。因此,生成模型更适用于无监督的任务,如分类和聚类。

  • 朴素贝叶斯基本原理

    • 条件概率公式
      就是事件A在事件B发生的条件下发生的概率。条件概率表示为P(A|B),读作“A在B发生的条件下发生的概率”。

    • 乘法公式
      贝叶斯定理由英国数学家贝叶斯 ( Thomas Bayes 1702-1761 ) 发展,用来描述两个条件概率之间的关系,比如 P(A|B) 和 P(B|A)。按照乘法法则,可以立刻导出:P(A∩B) = P(A)P(B|A)=P(B)P(A|B)。如上公式也可变形为:P(A|B)=P(B|A)*P(A)/P(B)。

    • 全概率公式
      全概率公式为概率论中的重要公式,它将对一复杂事件A的概率求解问题转化为了在不同情况下发生的简单事件的概率的求和问题。

      内容:如果事件B1、B2、B3…Bn 构成一个完备事件组,即它们两两互不相容,其和为全集;并且P(Bi)大于0,则对任一事件A有
      P(A)=P(A|B1)P(B1) + P(A|B2)P(B2) + ... + P(A|Bn)P(Bn)。
      或者:p(A)=P(AB1)+P(AB2)+...+P(ABn)),其中A与Bn的关系为交

    • 贝叶斯定理
      贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。其中P(A|B)是在B发生的情况下A发生的可能性。

      贝叶斯定理也称贝叶斯推理,早在18世纪,英国学者贝叶斯(1702~1763)曾提出计算条件概率的公式用来解决如下一类问题:假设H[1],H[2]…,H[n]互斥且构成一个完全事件,已知它们的概率P(H[i]),i=1,2,…,n,现观察到某事件A与H[1],H[2]…,H[n]相伴随机出现,且已知条件概率P(A|H[i]),求P(H[i]|A)
      表达式:P(A|B)=P(A)P(B|A)/P(B)

    • 特征条件独立假设
      这个是NB区别于其他模型的特点,也是它长得朴素的原因。假设一个样本x有n个特征,比如垃圾邮件过滤,一封邮件就是一个样本,是否是垃圾就是他的类别或者说标签,我们需要把文本邮件预处理成特定模板,比如把邮件x表示成一个n维度向量,其中每一维代表一种特征(比如是否包含关键词"促销",是否包含关键词"优惠"等等)。特征条件独立性假设说的就是在特定类别下这些特征之间是独立的。做出条件独立假设的原因当然不是为了让自己看起来朴素而已,而是有着实际的好处的。

    • 后验概率最大化

    • 拉普拉斯平滑

  • 朴素贝叶斯的三种形式

    • 多项式型
      当特征是离散的时候,使用多项式模型。多项式模型在计算先验概率P(y{k})和条件概率P(x{i}|y{k})时,会做一些平滑处理,具体公式为:

P\left(y_{k}\right)=\frac{N_{y_{k}}+\alpha}{N+k \alpha}
N是总的样本个数,
k是总的类别个数,
N{yk}是类别为y{k}的样本个数,
α是平滑值。
P\left(x_{i} | y_{k}\right)=\frac{N_{y_{k} x_{i}}+a}{N_{y_{k}}+n \alpha}
N{yk}是类别为y{k}的样本个数,n是特征的维数,N{yk-xi}是类别为yk的样本中,第i维特征的值是xi的样本个数,α是平滑值。

当α=1时,称作Laplace平滑,
当0<α<10<α<1时,称作Lidstone平滑,
α=0时不做平滑。

如果不做平滑,当某一维特征的值x{i}没在训练样本中出现过时,会导致P(x{i}|y{k})=0,从而导致后验概率为0。加上平滑就可以克服这个问题。

  • 高斯型
    当特征是连续变量的时候,运用多项式模型就会导致很多P(xi|yk)=0(不做平滑的情况下),此时即使做平滑,所得到的条件概率也难以描述真实情况。所以处理连续的特征变量,应该采用高斯模型。

  • 伯努利型
    与多项式模型一样,伯努利模型适用于离散特征的情况,所不同的是,伯努利模型中每个特征的取值只能是1和0(以文本分类为例,某个单词在文档中出现过,则其特征值为1,否则为0).

    伯努利模型中,条件概率P(xi|yk)P(xi|yk)的计算方式是:
    当特征值xixi为1时,P(xi|yk)=P(xi=1|yk)P(xi|yk)=P(xi=1|yk);
    当特征值xixi为0时,P(xi|yk)=1−P(xi=1|yk)P(xi|yk)=1−P(xi=1|yk);

  • 极值问题情况下的每个类的分类概率

  • 下溢问题如何解决
    数值下溢问题:是指计算机浮点数计算的结果小于可以表示的最小数,因为计算机的能力有限,当数值小于一定数时,其无法精确保存,会造成数值的精度丢失。
    解决方法:由上述公式可以看到,求概率时多个概率值相乘,得到的结果往往非常小;因此通常采用取对数的方式,将连乘转化为连加,以避免数值下溢。

  • 零概率问题如何解决
    零概率问题:就是在计算实例的概率时,如果某个量x,在观察样本库(训练集)中没有出现过,会导致整个实例的概率结果是0.

    在实际的模型训练过程中,可能会出现零概率问题(因为先验概率和反条件概率是根据训练样本算的,但训练样本数量不是无限的,所以可能出现有的情况在实际中存在,但在训练样本中没有,导致为0的概率值,影响后面后验概率的计算),即便可以继续增加训练数据量,但对于有些问题来说,数据怎么增多也是不够的。这时我们说模型是不平滑的,我们要使之平滑,一种方法就是将训练(学习)的方法换成贝叶斯估计。
    解决方法:朴素贝叶斯算法的先天缺陷:其他属性携带的信息被训练集中某个分类下未出现的属性值“抹去”,造成预测出来的概率绝对为0。为了拟补这一缺陷,前辈们引入了拉普拉斯平滑的方法:对先验概率的分子(划分的计数)加1,分母加上类别数;对条件概率分子加1,分母加上对应特征的可能取值数量。这样在解决零概率问题的同时,也保证了概率和依然为1:
    \begin{array}{c} P(c)=\frac{\left|D_{c}\right|}{|D|} \rightarrow P(c)=\frac{\left|D_{c}\right|+1}{|D|+N} \\ P\left(x_{i} | c\right)=\frac{| D_{x_{j} d^{l}}}{\left|D_{c}\right|} \rightarrow P\left(x_{i} | c\right)=\frac{| D_{x_{i} | d^{j}}+1}{\left|D_{c}\right|+N_{i}} \end{array}
    N表示数据集中分类标签,N_{i}表示第i个属性的取值类别数,|D_{c}|表示类别c的记录数量

  • sklearn参数详解

相关文章

  • DataWhale-02-朴素贝叶斯

    相关概念生成模型在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。它给...

  • 算法笔记(7)-朴素贝叶斯算法及Python代码实现

    朴素贝叶斯算法有三种类型,分别是贝努利朴素贝叶斯、高斯贝叶斯、多项式朴素贝叶斯。 贝叶斯公式 贝努利朴素贝叶斯 适...

  • 朴素贝叶斯法

    朴素贝叶斯法 朴素贝叶斯法的学习与分类 朴素贝叶斯法的参数估计 朴素贝叶斯实现 高斯朴素贝叶斯实现 使用 skle...

  • 朴素贝叶斯(NBM)之后验概率最大化的含义 | 统计学习方法

    朴素贝叶斯 - 贝叶斯估计Python复现: 舟晓南:朴素贝叶斯(Bayes)模型python复现 - 贝叶斯估计...

  • 朴素贝叶斯算法介绍及优化

    朴素贝叶斯(Naive Bayes) 贝叶斯公式 朴素贝叶斯算法其实原理很简单,要理解朴素贝叶斯算法我们首先得知道...

  • 朴素贝叶斯法(NaiveBayes)

    朴素贝叶斯法(Naive Bayes) 朴素贝叶斯法是基于贝叶斯定力和特征条件独立假设的分类方法。 朴素贝叶斯法实...

  • 朴素贝叶斯算法

    问题 1. 什么是朴素贝叶斯 2. 怎么理解贝叶斯公式和朴素贝叶斯公式 3. 朴素贝叶斯算法流程是怎样...

  • 深度学习知识点汇总-机器学习基础(6)

    2.6 逻辑回归与朴素贝叶斯有什么区别? 逻辑回归是判别模型, 朴素贝叶斯是生成模型。 朴素贝叶斯属于贝叶斯,逻辑...

  • 朴素贝叶斯

    朴素贝叶斯 用处:朴素贝叶斯主要解决的是而分类的问题。 为什么叫朴素贝叶斯: 因为贝叶斯分类只做最原始,最简单的假...

  • sklearn-朴素贝叶斯

    朴素贝叶斯分为三种:高斯朴素贝叶斯、多项式朴素贝叶斯、伯努利朴素贝叶斯。这三种的不同之处在于求条件概率的公式不同。...

网友评论

      本文标题:DataWhale-02-朴素贝叶斯

      本文链接:https://www.haomeiwen.com/subject/nnyvihtx.html