统计学习四:1.朴素贝叶斯

全文引用自《统计学习方法》(李航)

朴素贝叶斯(naive Bayes)法 是以贝叶斯定理为基础的一中分类方法,它的前提条件是假设特征条件相互独立。对于给定的训练集,它首先基于特征条件假设的前提条件,去学习输入与输出的条件概率分布,然后根据此分布模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。

1.朴素贝叶斯的学习与分类

1.1 基本方法

假设输入空间\(X \subseteq R^n\)为n维向量的集合,输入空间为类标记集合\(Y=\{c_1,c_2,\cdots,c_K\}\),输入为特征向量\(x \in X\),输出为类标记\(y \in Y, P(X,Y)\)是X和Y的联合概率分布,训练数据\(T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_{_N},y_{_N})\}\)由\(P(X,Y)\)独立同分布生成。

朴素贝叶斯法是一种生成模型,是通过训练数据集来学习联合概率分布\(P(X,Y)\),进而对新的输入数据进行预测的模型。而其具体的学习过程,就是学习先验概率分布和条件概率分布:

  • 先验概率分布:

    \[
    P(Y=c_k), k = 1,2,\cdots,K
    \]

  • 条件概率分布:

    \[
    P(X=x|Y=c_k)=P(X^{(1)},\cdots,X^{(n)}|Y=c_k),k=1,2,\cdots,K
    \]

    而后通过两者求得联合概率分布\(P(X,Y)\)。

条件概率分布\(P(X=x|Y=c_k)\)的计算通常是不可行的,因为计算参数的个数往往可能有指数级的。假定\(x^{(j)}\)可能的取值有\(S_j\)个,\(j=1,2,\cdots,n,\)Y的可能取值有K个,那么实际上参数的个数是\(K \prod_{j=1}^nS_j\)。

而朴素贝叶斯法有一个较强的前提假设,即条件独立性假设,因此条件概率满足:

\[
\begin{aligned}
P(X=x|Y=c_k) &= P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k)\&= \prod_{j=1}^nP(X^{(j)=x^{(j)}|Y=c_k})
\end{aligned}
\]

条件独立假设等于是说用于分类的特征在类确定的条件下,都是条件独立的。因此这一假设使得朴素贝叶斯法变得非常简单,但是由于各个条件在大多数情况下并非独立的,而是相互间会有一定的联系,因此这个假设会牺牲模型的一定的准确性。

朴素贝叶斯法通过求解给定的输入x的后验概率分布\(P(Y=c_k|X=x)\),并将概率最大的类作为x的类。

后验概率:

\[
P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)}
\]

由条件独立性假设,可知:

\[
P(Y=c_k|X=x)=\frac{P(Y=c_k)\prod_jP(P(X^{(j)}=x^{(j)})|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(P(X^{(j)}=x^{(j)})|Y=c_k)}
\]

这便是朴素贝叶斯法最基本的公式。

因此,朴素贝叶斯法表示为:

\[
y=f(x)=\arg\max_{c_k}\frac{P(Y=c_k)\prod_jP(P(X^{(j)}=x^{(j)})|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(P(X^{(j)}=x^{(j)})|Y=c_k)}
\]

由于上式中,分母对于任意类型都是恒定的值,因此可以简化为:

\[
y=\arg\max_{c_k}P(Y=c_k)\prod_jP(P(X^{(j)}=x^{(j)})|Y=c_k)
\]

1.2 后验概率最大化的含义

朴素贝叶斯法将输入实例划分为后验概率最大的类,实际上等价于期望风险最小化。

假设损失函数为0-1损失函数:

\[
L(Y,f(X))=
\begin{cases}
1,Y\neq f(X)\0,Y=f(X)
\end{cases}
\]

式中\(f(x)\)是分类决策函数,那么期望风险为:

\[
R_{exp}(f)=E[L(Y,f(X))]
\]

上述期望是对联合分布\(P(X,Y)\)所取,因此:

\[
R_{exp}=E_X\sum_{k=1}^{K}\left[L(c_k,f(X))\right]P(c_k|X)
\]

为使期望风险最小话,只需\(X=x\)逐个极小化,因此:

\[
\begin{aligned}
f(x) &=\arg\min_{y\in Y}\sum_{k=1}^{K}L(c_k,y)P(c_k|X=x)\&=\arg\min_{y\in Y}\sum_{k=1}^{K}P(y\neq c_k|X=x)\&=\arg\min_{y\in Y}\sum_{k=1}^{K}(1-P(y=c_k|X=x))\&=\arg\min_{y\in Y}P(y=c_k|X=x)
\end{aligned}
\]

因此,根据期望风险最小化准则,可以得到后验概率最大化准则:

\[
f(x)=\arg\max_{c_k}P(c_k|X=x)
\]

即朴素贝叶斯法所采用的方法。

2. 朴素贝叶斯法的参数估计

2.1 极大似然估计

在朴素贝叶斯法的中,模型的学习就是指对\(P(Y=c_k)\)和\(P(X^{(j)}=x^{(j)}|Y=c_k)\)的估计。应用极大似然估计可以估计所需的概率。

先验概率\(P(Y=c_k)\)的极大似然估计是:

\[
P(Y=c_k)=\frac{\sum_{i=1}I(y_i=c_k)}{N},k=1,2,\cdots,K
\]

设第j个特征\(x^{(j)}\)可能的取值集合为\(\{a_{j1,a_{j2},\cdots,a_{jS_j}}\}\),条件概率\(P(X^{(j)}=x^{(j)}|Y=c_k)\)的极大似然估计为:

\[
\begin{aligned}
P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^{N}I(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^{N}I(y_i=c_k)}\j=1,2,\cdots,n;l=1,2,\cdots,S_j;k=1,2,\cdots,K\\end{aligned}
\]

式中,\(x_i^{(j)}\)是指第i个样本的第j个特征,\(a_{jl}\)是指第j个特征可能取的第l个值,I为指示函数。

2.2 学习与分类算法

朴素贝叶斯法的学习过程,实际上就是利用训练数据集计算先验概率和条件概率的过程。而其分类过程,就是求取最大的后验概率的过程。具体的算法过程为:

  • 计算先验概率和条件概率

    \[
    \begin{aligned}
    P(Y=c_k)=\frac{\sum_{i=1}I(y_i=c_k)}{N},k=1,2,\cdots,K\P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^{N}I(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^{N}I(y_i=c_k)}\j=1,2,\cdots,n;l=1,2,\cdots,S_j;k=1,2,\cdots,K\\end{aligned}
    \]

  • 对于给定的实例\(x=(x^{(1)},x^{(2)},\cdots,x^{(n)})^T\),计算

    \[
    P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k),k=1,2,\cdots,K
    \]

  • 最后分类过程,确定实例x类:

    \[
    y=\arg\max_{c_k}P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)
    \]

    通过以上方式,就可以利用朴素贝叶斯法对实例进行分类。

2.3 贝叶斯估计

在利用极大似然估计时,可能会出现所估计的概率值为0的情况,这对后验概率的计算会有极大的影响,使分类结果产生偏差。可以利用贝叶斯估计法来解决这类问题情况。

条件概率的贝叶斯估计是指:

\[
P_\lambda(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda}{\sum_{j=1}^NI(y_i=c_k)+S_j\lambda}
\]

其中\(\lambda\geq0\)等价于在随机变量各个取值的频数上加上一个正数\(\lambda>0\),当\(\lambda = 0\)时,即为极大似然估计。在实际的应用中,通常取\(\lambda = 1\),此时称为拉普拉斯平滑(laplace smoothing),由此可得,对于任意\(l=1,2,\cdots,S_j,k=1,2,\cdots,K\),有

\[
P_\lambda(X^{(J)}=a_{jl}|Y=c_k)>0
\sum_{l=1}^{S_j}P(X^{(j)}=a_{jl}|Y=c_k)=1
\]

同样,先验概率的贝叶斯估计是:

\[
P_\lambda(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+\lambda}{N+K\lambda}
\]

通过以上贝叶斯估计,就可以有效避免出现所要估计的概率值为0的情况。

原文地址:https://www.cnblogs.com/zhiyuxuan/p/9676563.html

时间: 2024-10-05 09:10:18

统计学习四:1.朴素贝叶斯的相关文章

机器学习算法( 四、朴素贝叶斯算法)

一.概述 前两章我们要求分类器做出艰难决策,给出“该数据实例属于哪一类”这类问题的明确答案.不过,分类器有时会产生错误结果,这时可以要求分类器给出一个最优的类别猜测结果,同时给出这个猜测的概率估计值. 概率论是许多机器学习算法的基础,所以深刻理解这一主题就显得十分重要.第3章在计算特征值取某个值的概率时涉及了一些概率知识,在那里我们先统计特征在数据集中取某个特定值的次数,然后除以数据集的实例总数,就得到了特征取该值的概率.我们将在此基础上深人讨论.      本章会给出一些使用概率论进行分类的方

【资源分享】今日学习打卡--朴素贝叶斯法 (naive bayes classifier)

今日学习打卡,是一个非常简单的模型,朴素贝叶斯法(naive bayes classifier) 总得来说就是贝叶斯 + naive 通过,贝叶斯来计算事件发生概率: 然后,naive就是假设各个因素之间相互独立,互不影响. 在现实生活中,因素经常是有内在联系的.如:是否今天下雨,考虑因素有:气压,湿度,温度.实际上这些因素是有内在联系的,但是模型中假设它们相互独立,所以称为naive.这样,在计算中相当简单,且往往预测结果还算不错的. 链接: https://pan.baidu.com/s/1

《机器学习实战》学习笔记:基于朴素贝叶斯的分类方法

概率是许多机器学习算法的基础,在前面生成决策树的过程中使用了一小部分关于概率的知识,即统计特征在数据集中取某个特定值的次数,然后除以数据集的实例总数,得到特征取该值的概率. 目录: 一.基于贝叶斯理论的分类方法 二.关于朴素贝叶斯的应用场景 三.基于Python和朴素贝叶斯的文本分类 1.准备数据 2.训练算法 3.测试算法 四.小结 以下进入正文: 一.基于贝叶斯理论的分类方法 假设有两类数据组成的数据集如下: 其中,假设两个概率分布的参数已知,并用p1(x,y)表示当前数据点(x,y)属于类

斯坦福CS229机器学习课程笔记四:GDA、朴素贝叶斯、多项事件模型

生成学习与判别学习 像逻辑回归,用hθ(x) = g(θTx) 直接地来建模 p(y|x; θ) :或者像感知机,直接从输入空间映射到输出空间(0或1),它们都被称作判别学习(discriminative learning).与之相对的是生成学习(generative learning),先对 p(x|y) 与 p(y) 建模,然后通过贝叶斯法则导出后验条件概率分布分母的计算规则为全概率公式:p(x) = p(x|y = 1)p(y = 1) + p(x|y =0)p(y = 0).这一节介绍的

机器学习实战教程(五):朴素贝叶斯实战篇之新浪新闻分类

原文链接: Jack-Cui,https://cuijiahua.com/blog/2017/11/ml_5_bayes_2.html 一.前言 上篇文章机器学习实战教程(四):朴素贝叶斯基础篇之言论过滤器讲解了朴素贝叶斯的基础知识.本篇文章将在此基础上进行扩展,你将看到以下内容: 拉普拉斯平滑 垃圾邮件过滤(Python3) 新浪新闻分类(sklearn) 二.朴素贝叶斯改进之拉普拉斯平滑 上篇文章提到过,算法存在一定的问题,需要进行改进.那么需要改进的地方在哪里呢?利用贝叶斯分类器对文档进行

基于TF-IDF及朴素贝叶斯的短文本分类

概括:朴素贝叶斯分类器(Naïve Bayes classifier)是一种相当简单常见但是又相当有效的分类算法,在监督学习领域有着很重要的应用.朴素贝叶斯是建立在“全概率公式”的基础下的,由已知的尽可能多的事件A.B求得的P(A|B)来推断未知P(B|A),是的有点玄学的意思,敲黑板!!! 优点: 模型训练使用TF-IDF对训练数据做词频及概率统计: 分类使用朴素贝叶斯计算所有类目的概率; 适用于电商的短文本分类,加入部分人工干预,top3准确率可达到95%左右: 分类预测完全可解释,不存在神

机器学习——朴素贝叶斯(NBC)

朴素贝叶斯分类(NBC)是机器学习中最基本的分类方法,是其他众多分类算法分类性能的对比基础,其他的算法在评价性能时都在NBC的基础上进行.同时,对于所有机器学习方法,到处都蕴含着Bayes统计的思想. 朴素贝叶斯基于贝叶斯地理和特征条件独立性假设,首先基于条件独立性假设学习输入X和输出Y的联合分布P(X,Y),同时利用先验概率P(Y),根据贝叶斯定理计算出后验概率P(Y|X),找出每个类别的最大的后验概率即确定为相应的类别.算法实现简单,学习和预测的效率都很高, 基本定义 输入空间Rn为特征化的

Stanford大学机器学习公开课(五):生成学习算法、高斯判别、朴素贝叶斯

(一)生成学习算法 在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布.如二分类问题,不管是感知器算法还是逻辑回归算法,都是在解空间中寻找一条直线从而把两种类别的样例分开,对于新的样例,只要判断在直线的哪一侧即可:这种直接对问题求解的方法可以称为判别学习方法. 而生成学习算法则是对两个类别分别进行建模,用新的样例去匹配两个模板,匹配度较高的作为新样例的类别,比如分辨大象(y=1)和狗(y=0),首先,观察大象,然后建立一个大

概率--学习朴素贝叶斯分布

概率是一种基于事件发生可能性来描述未来趋势的数学工具.其本质就是通过过去已经发生的事情来推断未来事件,并且将这种推断放在一系列的公理化的数学空间当中进行考虑.例如,抛一枚均质硬币,正面向上的可能性多大?概率值是一个0-1之间的数字,用来衡量一个事件发生可能性的大小.概率值越接近于1,事件发生的可能性越大,概率值越接近于0,事件越不可能发生.天气预报员通常会使用像"明天80%的可能性会下雨"这样的术语来对降雨进行预测,这里70%或者0.7就是下雨的概率.在现实生活中,要么下雨,要么不下雨