• 《统计学习方法》笔记--朴素贝叶斯法


    朴素贝叶斯(Naive Bayes)是基于贝叶斯定理与特征条件独立假设的分类方法。即对于给定的训练数据,首先基于特征条件独立假设学习输入输出联合概率分布,然后基于此模型,对给定输入的x,利用贝叶斯定理输出最大的后验概率y。

    假设输入空间X,对应的输出空间Y为标记集合,而且在这些数据集中先验分布概率为:,条件分布概率为:

    然而,对于条件分布概率,其每个种取值,且输出空间Y的标记也有K种取值,那么条件分布概率的计算将有指数个参数需要参与。如此庞大的参数规模可能致使条件分布概率变为不可能。

    对此,朴素贝叶斯法对条件分布概率做了条件独立性的假设,使变为,让条件概率计算的参数分布到各个独立性条件概率的计算上。

    接着对应的输入X=x的输出标记分类,可由计算后验概率,得到的输入X=x和输出标记分类最大的后验概率可判断,输入x的对应标记分类类别。后验概率的计算根据利用朴素贝叶斯法的贝叶斯定理进行:

    在上述的计算公式中,由于分母是相同的,故可以对公式做进一步的简化:

    算法流程:

    输入:训练数据,其中是第i个样本的第j个特征,是第j个特征可能取的第个值,;实例x;

    (计算的过程中,用极大似然估计可能会出所要估计的概率为0的情况,而这会影响到后验概率的计算结果,使的实例x的分类结果产生偏差。为了消除差,采用贝叶斯估计)

    输出:实例x的分类

    1. 如果有先验概率,直接输入;没有则根据贝叶斯估计计算先验概率:

    2. 同样利用贝叶斯估计分别计算第k个分类条件下,第j个特征可能取第个值的条件概率:

    3. 对实例x分别计算:

       然后选取其中计算结果最大的一个便能判别实例x对应y的分类类别。

       

      朴素贝叶斯的主要优点有:

      1)朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。

      2)对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练。

      3)对缺失数据不太敏感,算法也比较简单,常用于文本分类。

       

      主要缺点有:   

      1) 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。

      2)需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。

      3)由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。

      4)对输入数据的表达形式很敏感。

  • 相关阅读:
    One SQL to Rule Them All – an Efficient and Syntactically Idiomatic Approach to Management of Streams and Tables(中英双语)
    Spark 公共篇-InterfaceStability
    ANTLR v4 专业术语集
    Apache Spark as a Compiler: Joining a Billion Rows per Second on a Laptop(中英双语)
    Deep Dive into Spark SQL’s Catalyst Optimizer(中英双语)
    What’s new for Spark SQL in Apache Spark 1.3(中英双语)
    Scala 隐式(implicit)详解
    Introducing Apache Spark Datasets(中英双语)
    darknet-yolov3训练自己的数据集(转)
    NVIDIA显卡,显卡驱动版本,CUDA版本,cudnn版本之间兼容关系及如何选择
  • 原文地址:https://www.cnblogs.com/lincz/p/11789824.html
Copyright © 2020-2023  润新知