• 朴素贝叶斯


    特点:高效,易实现;性能不一定高

    注意:对概率值取对数,变乘积为加法,避免连乘带来的小数问题;拉普拉斯平滑处理。

    参考:维基百科, 平凡而又神奇的贝叶斯方法,《统计学习方法》

    1 简介:

      朴素贝叶斯法是典型的生成学习方法。生成方法由训练数据学习联合概率分布P(X,Y),然后求得后验概率分布P(Y|X)。具体来说,利用训练数据学习P(X|Y)和P(Y)的估计,得到联合概率分布:P(X,Y)=P(Y)P(X|Y)。概率估计方法可以是极大似然估计或贝叶斯估计。

    简单推导:

        在学习阶段,每次是学习在某种类别下,每个特征的每种取值出现的概率,即p(X=x|C=c),而它的计算方式则是:在C=c&&X=x的样本数/C=c的样本数

        在测试阶段,就是计算一个样本表现为某个类别的概率,即p(c|x1,x2,x3...,xn),计算方式为:p(c|x1,x2,x3...,xn)=p(c,x1,x2,x3...,xn)/p(x1,x2,x3...,xn);

          而对于所有类别c,分母都是一样,所以只要比较分 母,分母p(c,x1,x2,x3...,xn)=p(x1,x2,x3...,xn|c)p(c)=p(X=x1|C=c)p(X=x2|C=c)p(X=x3|C=c)...p(X=xn|C=c)p(c)

    2 条件独立假设。

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

      2.1如果没有独立假设会怎么样?

             答:参数数量是指数级别,模型将变得极其复杂。

      2.2 在没有独立假设的情况下,参数数目是多少?

             答:参数有,表示第j个特征的取值数目,K表示类别数目。【即各个特征的取值空间和类别的取值空间的笛卡尔乘积的集合大小】

      2.3 在有独立假设的情况下,参数数目是多少?

        

      2.4 怎么理解为什么可以进行独立假设?

        各类条件特征之间的解耦意味着每个特征的分布都可以独立地被当做一维分布来估计。这样减轻了由于维数灾带来的阻碍,当样本的特征个数增加时就不需要使样本规模呈指数增长(所要学习的参数个数越多,需要的样本数目也就越多)。朴素贝叶斯在大多数情况下不能对类概率做出非常准确的估计,但在许多应用中这一点并不要求。例如,朴素贝叶斯分类器中,依据最大后验概率决策规则只要正确类的后验概率比其他类要高就可以得到正确的分类。所以不管概率估计轻度的甚至是严重的不精确都不影响正确的分类结果。在这种方式下,分类器可以有足够的鲁棒性去忽略朴素贝叶斯概率模型上存在的缺陷。

    3 连续值的处理

      如果要处理的是连续数据一种通常的假设是这些连续数值为高斯分布。 例如,假设训练集中有一个连续属性,x。我们首先对数据根据类别分类,然后计算每个类别中x的均值和方差。令mu_c 表示为xc类上的均值,令sigma^2_c为 xc类上的方差。在给定类中某个值的概率,P(x=v|c),可以通过将v表示为均值为mu_c方差为sigma^2_c正态分布计算出来。如下, 
P(x=v|c)=	frac{1}{sqrt{2pisigma^2_c}}\,e^{ -frac{(v-mu_c)^2}{2sigma^2_c} }
 处理连续数值问题的另一种常用的技术是通过离散化连续数值的方法。通常,当训练样本数量较少或者是精确的分布已知时,通过概率分布的方法是一种更好的选择。在大量样本的情形下离散化的方法表现更优,因为大量的样本可以学习到数据的分布。由于朴素贝叶斯是一种典型的用到大量样本的方法(越大计算量的模型可以产生越高的分类精确度),所以朴素贝叶斯方法都用到离散化方法,而不是概率分布估计的方法

    4 理解拉普拉斯平滑

      假设一个特征有k种取值,但是所有c类样本中都没有出现该特征的某种取值,则将该特征该取值的概率设置为1/(k+nc)。【nc表示c类样本数目】

         ps:不可能所有取值都没出现过。假设特征A的取值空间为{0,1},而C类中A的取值均为0, 则p(A=0|C=c)=(nc+1)/(2+nc),p(A=1|C=c)=1/(2+nc)

      

  • 相关阅读:
    .net 操作XML小结
    Oracle 10g RAC的负载均衡配置
    数据仓库建模与ETL实践技巧
    Red Hat Linux的分区
    用C#实现MVC(Model View Control)模式介绍
    SQL SERVER 日期函数大全
    ORACLE RAC工作原理
    NVARCHAR ,VARCHAR,NCHAR,CHAR区别
    SQLserver中用convert函数转换日期格式
    Linux之远程登录和文件传输
  • 原文地址:https://www.cnblogs.com/xiangzhi/p/4666369.html
Copyright © 2020-2023  润新知