朴素贝叶斯 Naive Bayes

  • 1. Introduction
    • 1.1 离散属性
    • 1.2 连续属性
    • 1.2.1 Gaussian Naive Bayes
    • 1.2.2 Multinomial Naive Bayes
    • 1.2.3 Complement Naive Bayes
  • 2. 训练和测试数据集
  • 3. 总结
  • 4. 实例

Reference:

  1. Naive Bayes
  2. 周志华《机器学习》

相关文章:贝叶斯法则

1. Introduction

朴素贝叶斯方法是一组基于贝叶斯定理的有监督学习算法,该算法的"幼稚"假设是给定类变量值的每一对特征之间的条件独立性

不难发现,基于贝叶斯公式 P(y∣x)=P(y)P(x∣y)P(x)P(y \mid \boldsymbol{x})=\frac{P(y) P(\boldsymbol{x} \mid y)}{P(\boldsymbol{x})}P(y∣x)=P(x)P(y)P(x∣y)​ 来估计后验概率 P(y∣x)P(y \mid \boldsymbol{x})P(y∣x) 的主要用难在于:类条件概率 P(x∣y)P(\boldsymbol{x} \mid y)P(x∣y) 是所有属性上的联合概率,难以从有限的训练样本直接估计而得。为避开这个障碍,朴素贝叶斯分类器 (naÏve Bayes classifier)采用了"属性条件独立性假设" (attribute conditional independence assumption): 对已知类别,假设所有属性相互独立。换言之,假设每个属性独立地对分类结果发生影响

通过贝叶斯定理,给出 类变量 yyy 与 相关特征向量 x1x_1x1​ 到 xnx_nxn​ 的关系:
P(y∣x1,…,xn)=P(y)P(x1,…,xn∣y)P(x1,…,xn)P\left(y \mid x_{1}, \ldots, x_{n}\right)=\frac{P(y) P\left(x_{1}, \ldots, x_{n} \mid y\right)}{P\left(x_{1}, \ldots, x_{n}\right)} P(y∣x1​,…,xn​)=P(x1​,…,xn​)P(y)P(x1​,…,xn​∣y)​

使用朴素条件独立假设:
P(xi∣y,x1,…,xi−1,xi+1,…,xn)=P(xi∣y)P\left(x_{i} \mid y, x_{1}, \ldots, x_{i-1}, x_{i+1}, \ldots, x_{n}\right)=P\left(x_{i} \mid y\right) P(xi​∣y,x1​,…,xi−1​,xi+1​,…,xn​)=P(xi​∣y)

对于所有 iii,关系简化为:
P(y∣x1,…,xn)=P(y)∏i=1nP(xi∣y)P(x1,…,xn)P\left(y \mid x_{1}, \ldots, x_{n}\right)=\frac{P(y) \prod_{i=1}^{n} P\left(x_{i} \mid y\right)}{P\left(x_{1}, \ldots, x_{n}\right)} P(y∣x1​,…,xn​)=P(x1​,…,xn​)P(y)∏i=1n​P(xi​∣y)​

因为 P(x1,…,xn)P\left(x_{1}, \ldots, x_{n}\right)P(x1​,…,xn​) 是给定常数,我们可以使用下面的分类规则:
P(y∣x1,…,xn)∝P(y)∏i=1nP(xi∣y)⇓y^=arg⁡max⁡yP(y)∏i=1nP(xi∣y)\begin{array}{r} P\left(y \mid x_{1}, \ldots, x_{n}\right) \propto P(y) \prod_{i=1}^{n} P\left(x_{i} \mid y\right) \\ \Downarrow \\ \hat{y}=\arg \max _{y} P(y) \prod_{i=1}^{n} P\left(x_{i} \mid y\right) \end{array} P(y∣x1​,…,xn​)∝P(y)∏i=1n​P(xi​∣y)⇓y^​=argmaxy​P(y)∏i=1n​P(xi​∣y)​
然后利用最大后验估计(Maximum A Posteriori MAP)来估计 P(y)P(y)P(y) 和 P(xi∣y)P\left(x_{i} \mid y\right)P(xi​∣y);前者是类 yyy 在训练集中出现的相对频率。

不同的朴素贝叶斯分类器的区别主要在于它们对分布 P(xi∣y)P\left(x_{i} \mid y\right)P(xi​∣y) 的假设

尽管朴素贝叶斯分类器的假设明显过于简化,但它们在许多现实世界的情况下都工作得相当好,比如著名的文档分类和垃圾邮件过滤。它们需要少量的训练数据来估计必要的参数。(关于朴素贝叶斯的理论原因,以及它适用于哪些类型的数据,请参见下面的参考资料。)

与更复杂的方法相比,朴素贝叶斯学习器和分类器可以非常快。类条件特征分布的解耦意味着每个分布都可以独立地估计为一维分布。这反过来有助于缓解来自维度灾难的问题。

另一方面,虽然朴素贝叶斯被认为是一个不错的分类器,但它被认为是一个糟糕的估计器,所以来自 predict_proba 的概率输出不必太认真。

朴素贝叶斯分类器的训练过程就是基于训练集 DDD 来估计类先验概率 P(y)P(y)P(y) ,并为每个属性估计条件概率 P(xi∣y)P(x_i \mid y)P(xi​∣y)。

令 DyD_yDy​ 表示训练集 DDD 中第 yyy 类样本组成的集合,若有充足的独立同分布样本,则可容易地估计出类先验概率
P(y)=∣Dy∣∣D∣P\left( y\right)=\frac{\left|D_{y}\right|}{|D|} P(y)=∣D∣∣Dy​∣​

1.1 离散属性

对离散属性而言,令 Dy,xiD_{y, x_{i}}Dy,xi​​ 表示 DyD_{y}Dy​ 中在第 iii 个属性上取值为 xix_ixi​ 的样本组成的集合,则条件概率 P(xi∣y)P(x_{i} \mid y)P(xi​∣y) 可估计为:
P(xi∣y)=∣Dy,xi∣∣Dy∣P\left(x_{i} \mid y\right)=\frac{\left|D_{y, x_{i}}\right|}{\left|D_{y}\right|} P(xi​∣y)=∣Dy​∣∣Dy,xi​​∣​

1.2 连续属性

1.2.1 Gaussian Naive Bayes

对连续属性可考虑概率密度函数,GaussianNB 实现了用于分类的高斯朴素贝叶斯算法。假设特征的似然为高斯分布:
P(xi∣y)=12πσy2exp⁡(−(xi−μy,i)22σy,i2)P\left(x_{i} \mid y\right)=\frac{1}{\sqrt{2 \pi \sigma_{y}^{2}}} \exp \left(-\frac{\left(x_{i}-\mu_{y,i}\right)^{2}}{2 \sigma_{y,i}^{2}}\right) P(xi​∣y)=2πσy2​​1​exp(−2σy,i2​(xi​−μy,i​)2​)

参数 σy,i\sigma_{y,i}σy,i​ and μy,i\mu_{y,i}μy,i​ 分别是第 yyy 个属性上取值的均值和方差,被用于估计最大似然。

1.2.2 Multinomial Naive Bayes

MultinomialNB 实现了多项分布数据的朴素贝叶斯算法,是文本分类中使用的两种经典朴素贝叶斯变体之一(在文本分类中,数据通常以单词向量计数表示,尽管 tf-idf 向量在实践中也很好用)。每个类别的分布由向量 θy=(θy1,…,θyn)\theta_{y}=\left(\theta_{y 1}, \ldots, \theta_{y n}\right)θy​=(θy1​,…,θyn​) 对每个类别 yyy 参数化,其中 nnn 是特征的数量(在文本分类中,词汇量的大小),θyi\theta_{yi}θyi​ 是特征 iii 出现在属于类别 yyy 的样本中的概率 P(xi∣y)P\left(x_{i} \mid y\right)P(xi​∣y)。

通过最大似然的平滑版本估计参数 θy\theta_yθy​,即相对频率计数:
θ^yi=Nyi+αNy+αn\hat{\theta}_{y i}=\frac{N_{y i}+\alpha}{N_{y}+\alpha n} θ^yi​=Ny​+αnNyi​+α​

其中 Nyi=∑x∈TxiN_{y i}=\sum_{x \in T} x_{i}Nyi​=∑x∈T​xi​ 为训练集 TTT 中某类样本 yyy 中出现特征 iii 的次数,Ny=∑i=1nNyiN_{y}=\sum_{i=1}^{n} N_{y i}Ny​=∑i=1n​Nyi​ 为类 yyy 所有特征的总数。

平滑先验 α≥0\alpha \geq 0α≥0 解释了学习样本中不存在的特征,并防止在进一步的计算中出现零概率。设置 α=0\alpha = 0α=0 称为 Laplace 平滑,而 α<0\alpha < 0α<0 称为 Lidstone 平滑。

1.2.3 Complement Naive Bayes

ComplementNB 实现了互补朴素贝叶斯(CNB)算法。CNB 是标准多项朴素贝叶斯(MNB)算法的一种改编,特别适合于不平衡数据集。具体来说,CNB 利用每个类的补充数据来计算模型的权重。实验结果表明,与 MNB 相比,CNB 的参数估计更稳定。此外,在文本分类任务上,CNB 通常优于 MNB(通常有相当大的差距)。权重的计算过程如下:
θ^ci=αi+∑j:yj≠cdijα+∑j:yj≠c∑kdkjwci=log⁡θ^ciwci=wci∑j∣wcj∣\begin{array}{r} \hat{\theta}_{c i}=\frac{\alpha_{i}+\sum_{j: y_{j} \neq c} d_{i j}}{\alpha+\sum_{j: y_{j} \neq c} \sum_{k} d_{k j}} \\ w_{c i}=\log \hat{\theta}_{c i} \\ w_{c i}=\frac{w_{c i}}{\sum_{j}\left|w_{c j}\right|} \end{array} θ^ci​=α+∑j:yj​=c​∑k​dkj​αi​+∑j:yj​=c​dij​​wci​=logθ^ci​wci​=∑j​∣wcj​∣wci​​​

其中,求和是对所有不在类 ccc 中的文档 jjj 进行的,dijd_{ij}dij​ 是文档中术语的计数或 tf-idf 值,是一个平滑超参数,就像在 MNB 中发现的那样,且 α=∑iαi\alpha = \sum_i \alpha_iα=∑i​αi​。第二种归一化处理了较长的文件在 MNB 中主要参数估计数的趋势。
c^=arg⁡min⁡c∑itiwci\hat{c}=\arg \min _{c} \sum_{i} t_{i} w_{c i} c^=argcmin​i∑​ti​wci​

也就是说,一个文档被赋给了 complement match 最差的类。

2. 训练和测试数据集

要保证训练和测试是在不同数据集上进行的,如果你不这么做,训练数据就可能出现过拟合。也就是说,模型可能会高估了自己对所有情况的了解程度---------这一点非常重要,因为在机器学习中需要泛化分类器,使它能够识别某些方面存在差别的新数据。

算法本身会记住所有训练数据,那么使用训练数据进行测试始终会获得 100% 的正确率,但它不知道如何泛化以分类新的数据。

所以应该始终遵守的规则是:永远保留大约 10% 的数据将其用作测试集。通过这些数据可以真正了解分类器在学习数据模式方面的进展,更客观地展示在利用训练集进行分类器训练时的表现。

3. 总结

优点:

  • 这种算法非常容易执行,它的特征空间非常大;
  • 该算法运行起来非常容易,效率非常高。

缺点:

  • 它有时候会失败,有时候失败得很好笑。比如由多个单词组成且意义明显不同的短语,朴素贝叶斯就不太适用了。

所以要根据想要解决的具体问题以及解决问题所需要用到的数据集,来选择算法。不可以把监督分类算法当作是一个黑盒,而应该把它们上升到一种对于理论的理解。包括算法如何运行,以及它们是否适合于想要解决的问题。

4. 实例


现使用上述数据集训练一个朴素贝叶斯分类器,然后对下述测试示例进行分类:

首先估计类先验概率 P(y)P(y)P(y) , 显然有:
P(好瓜=是)=817≈0.471,P(好瓜=否)=917≈0.529.\begin{array}{l} P(好瓜=是)=\frac{8}{17}\approx 0.471, \\ P(好瓜=否)=\frac{9}{17}\approx 0.529. \end{array} P(好瓜=是)=178​≈0.471,P(好瓜=否)=179​≈0.529.​

然后,为每个属性估计条件概率 P(xi∣c)P(x_i \mid c)P(xi​∣c):
P青绿|是 =P(色泽 =青绿 ∣好瓜 =是 )=38=0.375, P青绿|否 =P(色泽 =青绿 ∣好瓜 =否 )=39≈0.333, P蜷缩|是 =P(根蒂 =蜷缩 ∣好瓜 =是 )=58=0.375,P蜷缩|否 =P(根蒂 =蜷缩 ∣好瓜 =否 )=39≈0.333, P浊响|是 =P(敲声 =浊响 ∣好瓜 =是 )=68=0.750, P浊响|否 =P(敲声 =浊响 ∣好瓜 =否 )=49≈0.444,P清晰|是 =P(纹理 =清晰 ∣好瓜 =是 )=78=0.875,P清晰|否 =P(纹理 =清晰 ∣好瓜 =否 )=29≈0.222, P凹陷|是 =P(脐部 =凹陷 ∣好瓜 =是 )=68=0.750, P凹陷|否 =P(脐部 =凹陷 ∣好瓜 =否 )=29≈0.222,P硬滑|是 =P(触感 =硬滑 ∣好瓜 =是 )=68=0.750, P硬滑|否 =P(触感 =硬滑 ∣好瓜 =否 )=69≈0.667, p密度: 0.697∣是 =p(密度 =0.697∣好瓜 =是 )=12π⋅0.129exp⁡(−(0.697−0.574)22⋅0.1292)≈1.959,p密度: 0.697∣否 =p(密度 =0.697∣好瓜 =否 )=12π⋅0.195exp⁡(−(0.697−0.496)22⋅0.1952)≈1.203, p含糖: 0.460∣是 =p(含糖率 =0.460∣好瓜 =是 )=12π⋅0.101exp⁡(−(0.460−0.279)22⋅0.1012)≈0.788,p含糖: 0.460∣否 =p(含糖率 =0.460∣好瓜 =否 )=12π⋅0.108exp⁡(−(0.460−0.154)22⋅0.1082)≈0.066. \begin{array}{l} P_{\text {青绿|是 }}=P(\text { 色泽 }=\text { 青绿 } \mid \text { 好瓜 }=\text { 是 })=\frac{3}{8}=0.375 \text {, }\\ P_{\text {青绿|否 }}=P(\text { 色泽 }=\text { 青绿 } \mid \text { 好瓜 }=\text { 否 })=\frac{3}{9} \approx 0.333 \text {, }\\ P_{\text {蜷缩|是 }}=P(\text { 根蒂 }=\text { 蜷缩 } \mid \text { 好瓜 }=\text { 是 })=\frac{5}{8}=0.375 ,\\ P_{\text {蜷缩|否 }}=P(\text { 根蒂 }=\text { 蜷缩 } \mid \text { 好瓜 }=\text { 否 })=\frac{3}{9} \approx 0.333 \text { , }\\ P_{\text {浊响|是 }}=P(\text { 敲声 }=\text { 浊响 } \mid \text { 好瓜 }=\text { 是 })=\frac{6}{8}=0.750 \text { , }\\ P_{\text {浊响|否 }}=P(\text { 敲声 }=\text { 浊响 } \mid \text { 好瓜 }=\text { 否 })=\frac{4}{9} \approx 0.444,\\ P_{\text {清晰|是 }}=P(\text { 纹理 }=\text { 清晰 } \mid \text { 好瓜 }=\text { 是 })=\frac{7}{8}=0.875 ,\\ P_{\text {清晰|否 }}=P(\text { 纹理 }=\text { 清晰 } \mid \text { 好瓜 }=\text { 否 })=\frac{2}{9} \approx 0.222 \text {, }\\ P_{\text {凹陷|是 }}=P(\text { 脐部 }=\text { 凹陷 } \mid \text { 好瓜 }=\text { 是 })=\frac{6}{8}=0.750 \text {, }\\ P_{\text {凹陷|否 }}=P(\text { 脐部 }=\text { 凹陷 } \mid \text { 好瓜 }=\text { 否 })=\frac{2}{9} \approx 0.222 ,\\ P_{\text {硬滑|是 }}=P(\text { 触感 }=\text { 硬滑 } \mid \text { 好瓜 }=\text { 是 })=\frac{6}{8}=0.750 \text { , }\\ P_{\text {硬滑|否 }}=P(\text { 触感 }=\text { 硬滑 } \mid \text { 好瓜 }=\text { 否 })=\frac{6}{9} \approx 0.667 \text {, }\\ p_{\text {密度: } 0.697 \mid \text { 是 }}=p(\text { 密度 }=0.697 \mid \text { 好瓜 }=\text { 是 }) =\frac{1}{\sqrt{2 \pi} \cdot 0.129} \exp \left(-\frac{(0.697-0.574)^{2}}{2 \cdot 0.129^{2}}\right) \approx 1.959,\\ p_{\text {密度: } 0.697 \mid \text { 否 }}=p(\text { 密度 }=0.697 \mid \text { 好瓜 }=\text { 否 }) =\frac{1}{\sqrt{2 \pi} \cdot 0.195} \exp \left(-\frac{(0.697-0.496)^{2}}{2 \cdot 0.195^{2}}\right) \approx 1.203 \text {, }\\ \left.p_{\text {含糖: } 0.460 \mid \text { 是 }}=p \text { (含糖率 }=0.460 \mid \text { 好瓜 }=\text { 是 }\right) =\frac{1}{\sqrt{2 \pi} \cdot 0.101} \exp \left(-\frac{(0.460-0.279)^{2}}{2 \cdot 0.101^{2}}\right) \approx 0.788,\\ \left.p_{\text {含糖: } 0.460 \mid \text { 否 }}=p \text { (含糖率 }=0.460 \mid \text { 好瓜 }=\text { 否 }\right) =\frac{1}{\sqrt{2 \pi} \cdot 0.108} \exp \left(-\frac{(0.460-0.154)^{2}}{2 \cdot 0.108^{2}}\right) \approx 0.066 \text {. } \end{array} P青绿|是 ​=P( 色泽 = 青绿 ∣ 好瓜 = 是 )=83​=0.375, P青绿|否 ​=P( 色泽 = 青绿 ∣ 好瓜 = 否 )=93​≈0.333, P蜷缩|是 ​=P( 根蒂 = 蜷缩 ∣ 好瓜 = 是 )=85​=0.375,P蜷缩|否 ​=P( 根蒂 = 蜷缩 ∣ 好瓜 = 否 )=93​≈0.333 , P浊响|是 ​=P( 敲声 = 浊响 ∣ 好瓜 = 是 )=86​=0.750 , P浊响|否 ​=P( 敲声 = 浊响 ∣ 好瓜 = 否 )=94​≈0.444,P清晰|是 ​=P( 纹理 = 清晰 ∣ 好瓜 = 是 )=87​=0.875,P清晰|否 ​=P( 纹理 = 清晰 ∣ 好瓜 = 否 )=92​≈0.222, P凹陷|是 ​=P( 脐部 = 凹陷 ∣ 好瓜 = 是 )=86​=0.750, P凹陷|否 ​=P( 脐部 = 凹陷 ∣ 好瓜 = 否 )=92​≈0.222,P硬滑|是 ​=P( 触感 = 硬滑 ∣ 好瓜 = 是 )=86​=0.750 , P硬滑|否 ​=P( 触感 = 硬滑 ∣ 好瓜 = 否 )=96​≈0.667, p密度: 0.697∣ 是 ​=p( 密度 =0.697∣ 好瓜 = 是 )=2π​⋅0.1291​exp(−2⋅0.1292(0.697−0.574)2​)≈1.959,p密度: 0.697∣ 否 ​=p( 密度 =0.697∣ 好瓜 = 否 )=2π​⋅0.1951​exp(−2⋅0.1952(0.697−0.496)2​)≈1.203, p含糖: 0.460∣ 是 ​=p (含糖率 =0.460∣ 好瓜 = 是 )=2π​⋅0.1011​exp(−2⋅0.1012(0.460−0.279)2​)≈0.788,p含糖: 0.460∣ 否 ​=p (含糖率 =0.460∣ 好瓜 = 否 )=2π​⋅0.1081​exp(−2⋅0.1082(0.460−0.154)2​)≈0.066. ​

于是,有:
P(好瓜 =是 )×P青绿|是 ×P蜷缩|是 ×P浊响|是 ×P清晰|是 ×P凹陷|是 ×P硬滑|是 ×p密度: 0.697∣是 ×p含糖: 0.460∣是 ≈0.038,P(好瓜 =否 )×P青绿|否 ×P蜷缩|否 ×P浊响|否 ×P清晰|否 ×P凹陷|否 ×P硬滑|否 ×p密度: 0.697∣否 ×p含糖: 0.460∣否 ≈6.80×10−5.\begin{array}{l} P(\text { 好瓜 }=\text { 是 }) \times P_{\text {青绿|是 }} \times P_{\text {蜷缩|是 }} \times P_{\text {浊响|是 }} \times P_{\text {清晰|是 }} \times P_{\text {凹陷|是 }} \times P_{\text {硬滑|是 }} \times p_{\text {密度: } 0.697 \mid \text { 是 }} \times p_{\text {含糖: } 0.460 \mid \text { 是 }} \approx 0.038, \\ P(\text { 好瓜 }=\text { 否 }) \times P_{\text {青绿|否 }} \times P_{\text {蜷缩|否 }} \times P_{\text {浊响|否 }} \times P_{\text {清晰|否 }} \times P_{\text {凹陷|否 }} \times P_{\text {硬滑|否 }} \times p_{\text {密度: } 0.697 \mid \text { 否 }} \times p_{\text {含糖: } 0.460 \mid \text { 否 }} \approx 6.80 \times 10^{-5} . \end{array} P( 好瓜 = 是 )×P青绿|是 ​×P蜷缩|是 ​×P浊响|是 ​×P清晰|是 ​×P凹陷|是 ​×P硬滑|是 ​×p密度: 0.697∣ 是 ​×p含糖: 0.460∣ 是 ​≈0.038,P( 好瓜 = 否 )×P青绿|否 ​×P蜷缩|否 ​×P浊响|否 ​×P清晰|否 ​×P凹陷|否 ​×P硬滑|否 ​×p密度: 0.697∣ 否 ​×p含糖: 0.460∣ 否 ​≈6.80×10−5.​

由于 0.038>6.80×10−50.038>6.80\times10^{-5}0.038>6.80×10−5,因此,朴素贝叶斯分类器将测试样本判别为“好瓜”

需注意,若某个属性值在训练集中没有与某个类同时出现过,则直接基于
式 P(xi∣y)=∣Dy,xi∣∣Dy∣P\left(x_{i} \mid y\right)=\frac{\left|D_{y, x_{i}}\right|}{\left|D_{y}\right|}P(xi​∣y)=∣Dy​∣∣Dy,xi​​∣​ 进行概率估计,再根据式 y^=arg⁡max⁡yP(y)∏i=1nP(xi∣y)\hat{y}=\arg \max _{y} P(y) \prod_{i=1}^{n} P\left(x_{i} \mid y\right)y^​=argmaxy​P(y)∏i=1n​P(xi​∣y) 进行判别将出现问题。例如,在使用上述数据集训练朴素贝叶斯分类器时,对一个"敲声=清脆"的测试例,有
P清脆∣是=P(敲声=清脆∣好瓜=是)=08=0P_{清脆|是} =P(敲声=清脆|好瓜=是)=\frac{0}{8}=0P清脆∣是​=P(敲声=清脆∣好瓜=是)=80​=0

由于式连乘式计算出的概率值为零,因此,无论该样本的其他属性是什么,哪怕在其他属性上明显像好瓜,分类的结果都将是"好瓜=否",这样显然太合理。

为了避免其他属性携带的信息被训练集中未出现的属性值"抹去“,在估计概率值时通常要进行"平滑" (smoothing) ,常用"拉普拉斯修正" (Laplacian correction)。具体来说,令 NNN 表示训练集 DDD 中可能的类别数,NiN_iNi​ 表示第 iii 个属性可能的取值数,则上式的 P(y)=∣Dy∣∣D∣P\left( y\right)=\frac{\left|D_{y}\right|}{|D|}P(y)=∣D∣∣Dy​∣​ 和 P(xi∣y)=∣Dy,xi∣∣Dy∣P\left(x_{i} \mid y\right)=\frac{\left|D_{y, x_{i}}\right|}{\left|D_{y}\right|}P(xi​∣y)=∣Dy​∣∣Dy,xi​​∣​ 分别修正为:
P^(y)=∣Dy∣+1∣D∣+NP^(xi∣y)=∣Dy,xi∣+1∣Dy∣+Ni.\begin{aligned} \hat{P}(y) &=\frac{\left|D_{y}\right|+1}{|D|+N} \\ \hat{P}\left(x_{i} \mid y\right) &=\frac{\left|D_{y, x_{i}}\right|+1}{\left|D_{y}\right|+N_{i}} . \end{aligned} P^(y)P^(xi​∣y)​=∣D∣+N∣Dy​∣+1​=∣Dy​∣+Ni​∣Dy,xi​​∣+1​.​

例如,在本节的例子中,类先验概率可估计为:
P^(好瓜 =是 )=8+117+2≈0.474,P^(好瓜 =否 )=9+117+2≈0.526.\hat{P}(\text { 好瓜 }=\text { 是 })=\frac{8+1}{17+2} \approx 0.474, \quad \hat{P}(\text { 好瓜 }=\text { 否 })=\frac{9+1}{17+2} \approx 0.526. P^( 好瓜 = 是 )=17+28+1​≈0.474,P^( 好瓜 = 否 )=17+29+1​≈0.526.

类似地 ,P青绿∣是P_{青绿|是}P青绿∣是​ 和 P青绿∣否P_{青绿|否}P青绿∣否​ 可估计为:
P^青绿|是 =P^(色泽 =青绿 ∣好瓜 =是 )=3+18+3≈0.364, P^青绿|否 =P^(色泽 =青绿 ∣好瓜 =否 )=3+19+3≈0.333.\begin{aligned} \hat{P}_{\text {青绿|是 }}&=\hat{P}(\text { 色泽 }=\text { 青绿 } \mid \text { 好瓜 }=\text { 是 })=\frac{3+1}{8+3} \approx 0.364 \text {, }\\ \hat{P}_{\text {青绿|否 }}&=\hat{P}(\text { 色泽 }=\text { 青绿 } \mid \text { 好瓜 }=\text { 否 })=\frac{3+1}{9+3} \approx 0.333 \text {.} \end{aligned} P^青绿|是 ​P^青绿|否 ​​=P^( 色泽 = 青绿 ∣ 好瓜 = 是 )=8+33+1​≈0.364, =P^( 色泽 = 青绿 ∣ 好瓜 = 否 )=9+33+1​≈0.333.​

同时,上文提到的概率 P清脆∣是P_{清脆|是}P清脆∣是​ 可估计为:
P^清脆|是 =P^(敲声 =清脆 ∣好瓜 =是 )=0+18+3≈0.091. \hat{P}_{\text {清脆|是 }}=\hat{P}(\text { 敲声 }=\text { 清脆 } \mid \text { 好瓜 }=\text { 是 })=\frac{0+1}{8+3} \approx 0.091 \text {. } P^清脆|是 ​=P^( 敲声 = 清脆 ∣ 好瓜 = 是 )=8+30+1​≈0.091.

显然,拉普拉斯修正(拉普拉斯修正实质上假设了属性值与类别均匀分布,这是在朴素贝叶斯学习过程中额外引入的关于
数据的先验)避免了因训练集样本不充分而导致概率估值为零的问题,并且在训练集变大时,修正过程所引入的先验 (prior) 的影响也会逐渐变得可忽略,使得估值渐趋向于实际概率值。

文章跳转:
机器学习二:支持向量机
机器学习三:决策树
传统物体检测

机器学习一:朴素贝叶斯(Naive Bayes)相关推荐

  1. 机器学习笔记——朴素贝叶斯(Naive Bayes)

    1贝叶斯算法简介 贝叶斯分类算法是统计学的一种分类方法,它是一类利用概率统计知识进行分类的算法.在许多场合,朴素贝叶斯(Naïve Bayes,NB)分类算法可以与决策树和神经网络分类算法相媲美,该算 ...

  2. 机器学习算法: 朴素贝叶斯(Naive Bayes)

    朴素贝叶斯的介绍 朴素贝叶斯算法(Naive Bayes, NB) 是应用最为广泛的分类算法之一.它是基于贝叶斯定义和特征条件独立假设的分类器方法.由于朴素贝叶斯法基于贝叶斯公式计算得到,有着坚实的数 ...

  3. 【机器学习】朴素贝叶斯(Naive Bayes)

    在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同.对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系, ...

  4. 机器学习:基于朴素贝叶斯(Naive Bayes)的分类预测

    目录 一.简介和环境准备 简介: 环境: 二.实战演练 2.1使用葡萄(Wine)数据集,进行贝叶斯分类 1.数据导入 2.模型训练 3.模型预测 2.2模拟离散数据集–贝叶斯分类 1.数据导入.分析 ...

  5. 朴素贝叶斯(naive bayes)

    朴素贝叶斯(naive bayes) 标签: Python 机器学习 主要參考资料:<机器学习实战><统计学习方法> 1.朴素贝叶斯分类原理 朴素贝叶斯法是基于贝叶斯定理和特征 ...

  6. 【手写算法实现】 之 朴素贝叶斯 Naive Bayes 篇

    [手写算法实现] 之 朴素贝叶斯 Naive Bayes 篇 朴素贝叶斯模型(naive bayes)属于分类模型,也是最为简单的概率图模型,对于之后理解HMM.CRF等模型,大有裨益.这里手写算法介 ...

  7. 西瓜书+实战+吴恩达机器学习(八)监督学习之朴素贝叶斯 Naive Bayes

    文章目录 0. 前言 1. 朴素贝叶斯算法 2. 半朴素贝叶斯算法 2.1. ODE 2.2. SPODE 2.3. TAN 2.4. AODE 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔 ...

  8. 机器学习(十)分类算法之朴素贝叶斯(Naive Bayes)算法

    贝叶斯定理 首先我们来了解一下贝叶斯定理: 贝叶斯定理是用来做什么的?简单说,概率预测:某个条件下,一件事发生的概率是多大? 了解一下公式 事件B发生的条件下,事件A发生的概率为: 这里写图片描述 同 ...

  9. 朴素贝叶斯(Naive Bayes),“Naive”在何处?

    加上条件独立假设的贝叶斯方法就是朴素贝叶斯方法(Naive Bayes). Naive的发音是"乃一污",意思是"朴素的"."幼稚的".&q ...

最新文章

  1. 学习难?求职难?90分钟点亮你的AI求职之路!
  2. matlab 实现 stacked Autoencoder 解决图像分类问题
  3. java对象如何保存日期_如何在Java中的日期对象中存储和检索毫秒?
  4. IIS上部署asp.net core2.1项目
  5. 计算机考研没奖,备战考研本科期间没有什么奖项,考研复试会有影响吗?
  6. 服务器400_瓜分400万filecoin的入门条件:现货服务器
  7. 【ODBC】ODBC连接数据库详细说明
  8. 小米微信双开开启谷歌服务器,小米10怎么双开微信 具体设置方法分享
  9. a轮融资1亿多不多_A轮融资一共就三件重要的事情 B轮最重要的两件事
  10. 2021-09-07 照书码——_——
  11. java学习(二)——类与对象
  12. html选择按键点击后锁死输入框_js Dom为页面中的元素绑定键盘或鼠标事件
  13. 【CVE-2021-4034】 漏洞详细原理以及复现,polkit的pkexec中的本地提权漏洞
  14. var 和int定义变量的问题【C#】
  15. Linux内核中的IPSEC实现2
  16. Android开发本地及网络Mp3音乐播放器(五)实现专辑封面图片
  17. Python 3 字符串 strip( ) 方法
  18. python数码管倒计时程序_树莓派Python编程用1位数码管显示数字倒计时
  19. Android 原生设置Settings.apk恢复出厂页面操作体验优化
  20. 数学建模培训笔记记录--8.3

热门文章

  1. ionic4 混合移动开发 (前世今生)
  2. 草食系的“恋爱秘方”
  3. 功能简单却流量巨大,你想不到的海外APP
  4. UKF 无迹卡尔曼滤波
  5. java 手机号码生成_用R语言和java实现随机生成手机号码
  6. 2022年湖北武汉安全员ABC证一年考几次?什么时候考试呢?
  7. 5年,你知道我这5年怎么过的吗?路过东方明珠的测试人,心死了
  8. 2020智能交通展新发展方向“5G+智能交通”共赢未来 值得期待
  9. 【Python教程】高级篇
  10. C++学习--布尔值函数的返回值