朴素贝叶斯算法详解(1)

1. 引言

  朴素贝叶斯算法(Naive Bayes)是机器学习中常见的基本算法之一,主要用来做分类任务的。它是基于贝叶斯定理与条件独立性假设的分类方法。对于给定的训练数据集,首先基于特征条件独立性假设学习输入/输出的联合概率分布,然后基于此模型,对于给定的输入 x 利用贝叶斯定理求出后验概率最大的输出 y。   基于以上的解释,我们知道:1. 该算法的理论核心是贝叶斯定理;2. 它是基于条件独立性假设这个强假设之下的,这也是该算法为什么称为“朴素”的原因。

本文将从以下几个角度去详细解释朴素贝叶斯算法:

  1. 朴素贝叶斯算法的数学原理;
  2. 朴素贝叶斯算法的参数估计;
  3. 拉普拉斯平滑;

2. 原理

  介绍完了基本概念之后,我们就应该详细地介绍算法的原理。由于该算法的基本思想是基于朴素贝叶斯定理的,所以本节首先介绍一下朴素贝叶斯算法背后的数学原理。

2.1 贝叶斯定理

  根据贝叶斯定理,对一个分类问题,给定样本特征 x,样本属于类别 y 的概率是

P(y|x)=P(x|y)∗P(y)P(x)(1)

公式中的 x 是特征向量的维度,假设为 d。因此,有:

P(y|x)=P(x1,x2,...,xd|y)∗P(y)P(x)(2)

由于条件概率分布有指数及数量的参数,因此,求解该问题是一个NP难问题,实现中很难解决,所以直接求解不可行。因此,朴素贝叶斯法对条件概率分布做了条件独立性的假设,于是有:

P(x1,x2,...,xd|y=ck)=∏i=0dP(xi|y=ck)(3)

将(3)带入(2)得:

P(y=ck|x)=P(y=ck)∏di=0P(xi|y=ck)P(x)(4)

这是朴素贝叶斯法分类的基本公式。因此,朴素贝叶斯分类器可以表示为:

y=f(x)=argmaxckP(y=ck)∏di=0P(xi|y=ck)P(x)(5)

由于所有的P(x)的分布是一样的,所以:

y=f(x)=argmaxckP(y=ck)∏i=0dP(xi|y=ck)(6)

2.2 后验概率最大化的意义

  由上述的推导可知,朴素贝叶斯分类是将实例分到后验概率最大的类中。这等价于期望风险最小化。这就是朴素贝叶斯法所采用的原理。

3. 参数估计

  由(6)可知,朴素贝叶斯法的学习过程主要是估计 P(y=ck) 以及 P(xj|y=ck)。

P(y=ck)=∑Ni=1I(yi=ck)N,k=1,2,...,K(7)

P(Xj=xj|y=ck)=∑Ni=1I(Xj=xj,y=ck)∑Ni=1I(yi=ck),k=1,2,...,K(8)

4. 拉普拉斯平滑

  到这里好像方法已经介绍完了,实则有一个小问题需要注意,在公式中,如果从样本中算出的概率值为0该怎么办呢?下面介绍一种简单方法,给学习步骤中的两个概率计算公式,分子和分母都分别加上一个常数,就可以避免这个问题。更新过后的公式如下:

P(y=ck)=∑Ni=1I(yi=ck)+λN+Kλ,k=1,2,...,K(9)

K是类的个数

P(Xj=xj|y=ck)=∑Ni=1I(Xj=xj,y=ck)+λ∑Ni=1I(yi=ck)+Ljλ,k=1,2,...,K(10)

Lj是第j维特征的最大取值


以上都是基于特征值x为离散值的情况的讨论,那么,对于连续值的情况怎么处理呢?请听下文分解!

原文发布于微信公众号 - 机器学习算法全栈工程师(Jeemy110)

原文发表时间:2017-08-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法原理与实践

线性回归原理小结

    线性回归可以说是机器学习中最基本的问题类型了,这里就对线性回归的原理和算法做一个小结。

764
来自专栏AI科技评论

学界 | 大白话解释模型产生过拟合的原因

AI科技评论按:本文原作者忆臻,原载于作者的知乎专栏。 今天郭江师兄在实验室讲解了全体机器学习会第一章的知识,大家讨论了一下过拟合的知识,这里我根据自己的理解,...

3459
来自专栏专知

你以为线性回归和逻辑回归是一回事吗?

【导读】逻辑回归到底是回归还是分类?逻辑回归和线性回归是一回事儿吗?它们有什么区别和联系?其实它们从输出到公式,再到残差分布,都不一样。本文将认真“探讨”关于以...

1293
来自专栏深度学习与计算机视觉

Object Detection系列(四) Faster R-CNN

Object Detection系列(一) R-CNN Object Detection系列(二) SPP-Net Object Detection系列...

2295
来自专栏SnailTyan

Batch Normalization论文翻译——中文版

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Cov...

3010
来自专栏AI科技评论

零示例学习中的映射域迁移 (projection domain shift) 问题

AI 科技评论按:本文由上海交通大学副教授牛力为 AI 科技评论提供的独家稿件,未经许可不得转载。

943
来自专栏大数据挖掘DT机器学习

数据挖掘算法-Matlab实现:Logistic 回归

什么叫做回归呢?举个例子,我们现在有一些数据点,然后我们打算用一条直线来对这些点进行拟合(该曲线称为最佳拟合曲线),这个拟合过程就被称为回归。 利用Logis...

2916
来自专栏IT派

无需深度学习框架,如何从零开始用Python构建神经网络

动机:为了深入了解深度学习,我决定从零开始构建神经网络,并且不使用类似 Tensorflow 的深度学习库。我相信,对于任何有理想的数据科学家而言,理解神经网络...

995
来自专栏IT派

理解SVM的三层境界(二)

第二层、深入SVM 2.1、从线性可分到线性不可分 2.1.1、从原始问题到对偶问题的求解 接着考虑之前得到的目标函数: ? 由于求 的最大值相当于求 ...

2793
来自专栏闪电gogogo的专栏

《统计学习方法》笔记一 统计学习方法概论

  输入与输出所有可能取值的集合成为输入空间与输出空间。每个具体的输入是一个实例,通常由特征向量表示,所有特征向量存在的空间成为特征空间。

482

扫码关注云+社区