Sckit-learn之朴素贝叶斯

41 篇文章 52 订阅
7 篇文章 0 订阅

1. 朴素贝叶斯方法概述

      朴素贝叶斯方法是一系列有监督学习算法组成的,这些算法基于应用贝叶斯理论并带有“naive”的假设:所有特征之间两两独立。给定一个类变量 y 和一个独立的特征向量集 x1 xn 。贝叶斯理论阐述如下的关系式:

这里写图片描述

使用朴素独立假设:

这里写图片描述

对于所有的 i ,上述的关系式简化为:

这里写图片描述

因为这里写图片描述是给定的输入的常量,所以我们可以使用如下的分类规则:

这里写图片描述

      并且我们可以使用最大后验概率来估计 P(y) P(xi|y) ; 前者是类 y 将会在训练数据中出现的频率。不同的朴素贝叶斯分类器主要区别在于它们对于分布 P(xi|y) 拥有不同的假设。尽管它们表面上过于简单的假设,但是朴素贝叶斯分类器在现实情况中工作的很好,最著名的应用就是文本分类和垃圾邮件过滤。它们需要一定数量的训练数据来估计需要的参数。
      朴素贝叶斯学习和分类器可以比更复杂的方法工作的更快速。类条件特征分布的去耦意味着每一个分布可以被独立的估计一维分布。这反过来有助于缓解问题源于维度的诅咒。
      另一方面,尽管贝叶斯分类器作为一个相当好的分类器,但是如果从 predict_proba 输出的概率没有被严格的采用,那么他将变为一个坏的估计。

2. 高斯贝叶斯

      GaussianNB 实现了朴素贝叶斯算法作为分类器。特征的似然估计被假定为高斯分布:

这里写图片描述

参数 δy μy 是使用最大似然估计计算出来的。

>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> from sklearn.naive_bayes import GaussianNB
>>> gnb = GaussianNB()
>>> y_pred = gnb.fit(iris.data, iris.target).predict(iris.data)
>>> print("Number of mislabeled points out of a total %d points : %d"
...       % (iris.data.shape[0],(iris.target != y_pred).sum()))
Number of mislabeled points out of a total 150 points : 6

3. 多项式朴素贝叶斯

      MultinomialNB 实现了多项式分布数据上的朴素贝叶斯算法,并且是两种在文本分类中使用的朴素贝叶斯方法的变中之一(在这数据典型地表示为词向量统计,尽管 tf-idf 算法在实践中的效果更好)。每个类 y 的分布由向量这里写图片描述 参数化,其中 n 是特征数(在文本分类中,表示的就是单词的数目),并且 θyi 就是 P(xi|y) 也即特征 出现在样本中的特征 i 属于 y 的概率。
       参数 θy 由一个平滑版本的最大似然估计来估算,例如相关的频率计算:

这里写图片描述

其中 这里写图片描述,是特征 i 在训练集 T 中出现在类 y 的次数,并且 这里写图片描述 是类 y 所有特征的的总数。
       平滑先验 α>0 记录没有在学习样本中出现的特征的数目并且能够防止在将来的计算中出现0概率。设置 α=1 称为拉普拉斯平滑, α<1 称为Lidstone平滑.

4. 伯努利朴素贝叶斯

      BernoulliNB 实现了数据分布服从多变量伯努利分布的朴素贝叶斯训练和分类算法。例如,有多个维度的特征,但是每个维度的特征是一个二进制变量。因此,该类要求样本被表示为二进制特征向量,如果处理任何其他种类的数据,一个BernoulliNB 可能二值化它的输入(依赖于参数binarize)。
       伯努利贝叶斯决策规则基于如下公式:

这里写图片描述

这和多项式朴素贝叶斯规则区别在于:它明确地惩罚未出现的作为类 y 的指标的特征 i。然而,在多项式变量将简单地忽略一个没有出现的特征。

       在文本分类中,词出现向量(而不是词统计向量)可能会被用来训练和使用该分类器。BernoulliNB 在某些数据集上的执行效果会更好,尤其是在那些比较短的文本中。如果时间允许的话,建议对以上两种模型进行对比评估一下。

5. 核外朴素贝叶斯模型拟合

       朴素贝叶斯模型能够被用于那些全部训练集不能够完全存放于内存中的大规模分类问题。要处理这种情况,MultinomialNB, BernoulliNB, 和 GaussianNB 暴露一个名为partial_fit的方法,该方法能够被增量式的用于其他分类器。所有的朴素贝叶斯分类器支持样本权重。对比与fit方法,partial_fit方法在第一次使用时需要通过所有期望的类标签的列表。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值