朴素贝叶斯分类算法

本文介绍了朴素贝叶斯分类算法,

标记后的话一般是自己简要总结的,是比较通俗易懂的,也就是必看的。

参考:西瓜书,ysu老师课件


【摘要】

1.分类算法:分类算法的内容是根据给定特征,求出它所属类别

2.先验概率:就是根据以往的数据分析所得到的概率。

后验概率:是得到信息之后重新加以修正得到的概率。

3.贝叶斯决策:贝叶斯决策理论中,我们希望选择那个最小化总体期望损失的决策。决策损失的期望值通过对所有可能状态的加权平均来计算,其中权重是先验概率。


分类算法

分类算法是有监督学习的一个核心问题,他从数据中学习一个分类决策函数或分类模型,对新的输入进行预测,输出变量取有限个离散值。

分类算法的内容是要求给定特征,让我们得出类别。

那么如何由指定特征,得到我们最终的类别呢,每一个不同的分类算法,对应着不同的核心思想。

以下是一些常见的分类算法:

  1. 逻辑回归 (Logistic Regression):

    用于二分类问题,通过逻辑函数将输入映射到0和1之间的概率。
  2. K近邻算法 (K-Nearest Neighbors, KNN):

    基于输入数据点在特征空间中的邻近程度,将其分为最接近的K个邻居的多数类别。
  3. 决策树 (Decision Trees):

    基于对输入数据进行递归分割,以最小化混淆或不确定性,从而创建树状结构来进行分类。
  4. 随机森林 (Random Forest):

    通过集成多个决策树,每个树的投票决定最终的分类结果,提高模型的鲁棒性和泛化能力。
  5. 支持向量机 (Support Vector Machines, SVM):

    构建一个超平面,最大化两个类别之间的间隔,用于二分类和多分类问题。
  6. 朴素贝叶斯 (Naive Bayes):

    基于贝叶斯定理,假设输入特征之间是相互独立的,通过计算后验概率进行分类。
  7. 神经网络 (Neural Networks):

    通过多个神经元和层的组合,学习非线性关系,适用于复杂的问题和大规模数据。
  8. 梯度提升机 (Gradient Boosting Machines):

    通过逐步构建多个弱分类器(通常是决策树),每个都纠正前一个的错误,从而提高整体模型性能。
  9. Adaboost (Adaptive Boosting):

    类似于梯度提升,但是每个弱分类器的权重是根据前一个分类器的性能来调整的。
  10. XGBoost (Extreme Gradient Boosting):

    是一种梯度提升算法的变种,通过更加高效的实现和正则化技术,提高了性能。

选择合适的分类算法通常取决于数据的性质、问题的复杂程度以及模型的性能要求。在实际应用中,往往需要尝试多种算法,并通过交叉验证等技术来评估它们的性能。


朴素贝叶斯

 1.数学基础

先验概率(Prior Probability)

  • 先验概率是在考虑任何新观测数据之前,基于先前的知识或信仰,对事件发生的概率的初始估计。这是对事件的主观先验信仰或经验的量化体现。

  • 记作 P(A),表示事件 A 在考虑新的观测数据之前的概率。先验概率可以基于领域专家的经验、历史数据或任何相关信息。

先验概率,就是由以往的数据分析所得。

后验概率(Posterior Probability)

  • 在观测到新数据之后,通过贝叶斯定理计算得到的更新概率,即在考虑了先验概率的基础上,考虑新的观测数据后事件发生的概率。

  • 记作 P(A|B),表示在给定观测数据 B 的情况下,事件 A 发生的概率。这是基于新的数据调整过的概率。

后验概率,在得到信息之后重新加以修正得到的概率。

2.贝叶斯决策论

2.1 贝叶斯定理

朴素贝叶斯分类算法_第1张图片

其中:

  • P(A∣B) 是后验概率,表示在给定观测到 B 的情况下,事件 A 发生的概率。
  • P(B∣A) 是似然度,表示在事件 A 发生的情况下观测到 B 的概率。
  • P(A) 是先验概率,表示在考虑观测数据 B 之前事件 A 发生的概率。
  • P(B) 是边缘似然度,表示观测到数据 B 的概率。
  1. 先验概率 P(A): 在考虑观测到任何新数据 B 之前,我们对事件 A 的初始信仰,即在没有新证据的情况下,事件 A 发生的概率。

  2. 似然度 P(B∣A): 在事件 A 发生的条件下,观测到数据 B 的概率。这描述了事件 A 对观测数据 B 的影响。

  3. 边缘似然度 P(B): 观测到数据 B 的概率,考虑所有可能的事件。它是一个归一化因子,确保后验概率 P(A∣B) 在所有可能的事件 A 下加和为1。

  4. 后验概率 P(A∣B): 在观测到数据 B 之后,事件 A 发生的概率。这是通过将先验概率与新的证据(似然度)结合起来得到的。

2.2 贝叶斯决策论

【贝叶斯决策论】:是一种基于贝叶斯统计学的决策方法,它通过考虑先验概率、似然度以及决策损失来做出最优决策。这种方法可以应用于各种决策问题,包括分类、回归和其他决策场景。

通俗理解:

【贝叶斯决策】 在贝叶斯决策理论中,我们希望选择那个最小化总体期望损失的决策。决策损失的期望值通过对所有可能状态的加权平均来计算,其中权重是先验概率。

朴素贝叶斯分类算法_第2张图片

我们的任务是寻找一个判定标准,以最小化总体期望损失。 

决策过程:

  1. 计算后验概率: 使用贝叶斯定理计算在给定观测数据的情况下,每个可能状态的后验概率。

  2. 计算期望损失: 对于每种可能的决策,计算总体期望损失。

  3. 选择最小化期望损失的决策: 选择那个使期望损失最小的决策,即选择总体期望损失最小的决策。


专业解释:

贝叶斯决策论(Bayesian decision theory)是在概率框架下实施决策的基本方法。

在分类问题情况下,在所有相关概率都已知的理想情形下,贝叶斯决策考虑如何基于这些概率和误判损失来选择最优的类别标记。 

朴素贝叶斯分类算法_第3张图片

【解读】: 

N种可能的类别标记,分别为 c_1,c_2,...c_N

\lambda _{ij}是将一个样本分错类后产生的损失。

一个事件为将真实标记为c_j的样本误分类为c_i,它的总体期望损失是R(c_i|X),其中

(其实也就是这个事件发生的概率 ✖ 这个事件的损失值)

 总结:我们的任务是寻找一个判定准则 h 来使总体期望损失最小。

朴素贝叶斯分类算法_第4张图片

【解读】:

 对每个样本而言,如果判定准则h能够使这个样本的条件风险最小化,则总体风险也将被最小化。

然后就有了贝叶斯判定准则,也就是 在每个样本上选择使条件风险最小的类别样本 标记。

总结:贝叶斯判定准则,也就是在每个样本上选择使条件风险最小的类别样本标记。 

朴素贝叶斯分类算法_第5张图片

 【解读】:

首先是损失\lambda _{ij}的计算:如果i=j,则损失记为0,否则损失记为1。

然是条件风险的计算,

我们的目标是使条件风险最小,那就是要使后验概率P(c|X)最大,

所以就找到了最优分类器,

即,对每个样本X,我们选择能使后验概率P(c|X)最大的类别标记。

总结:对每个样本X,我们选择能使后验概率P(c|X)最大的类别标记,这样我们才可以使条件风险最小。

所以,使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率 P(c | X)

但是,在现实中通常难以直接获得。

机器学习所要实现的是基于有限的训练样本尽可能准确地估计出后验概率 P(c | X) 。

朴素贝叶斯分类算法_第6张图片

基于贝叶斯定理,朴素贝叶斯分类算法_第7张图片

可写成

 P(c) 是类“先验”概率。

P(X|c) 是样本X相对于类标记c的类条件概率,或称为“似然”。

P(X) 是用于归一化的“证据”因子。

P(c|X) 是后验概率。

对于给定样本X,证据因子P(X)与类标记无关,因此估计P(c|X)的问题就转化为如何基于训练数据D来估计先验 P(c)和似然P(X|c)

估计P(c|X)的问题就转化为如何基于训练数据D来估计类先验概率 P(c)和类条件概率P(X|c)

类先验概率 P(c),表达了样本空间中各类样本所占的比例。(根据大数定律,可转化为各类样本出现的频率)

类条件概率P(X|c),它涉及关于X所有属性的联合概率。

但是类条件概率P(X|c),它涉及关于X所有属性的联合概率,直接根据样本出现的频率来估计会遇到严重的困难,因为训练集中不可能覆盖所有的情况,“未观测到”和“出现概率为0”是不相同的。

因此我们引入了极大似然估计。

引入【极大似然估计】。

估计类条件概率的常用策略:先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布进行参数估计。

具体地,记关于类别 c 的类条件概率为 P(X | c) ,假设 P(X | c) 具有确定的形式被参数\theta _c 唯一确定,我们的任务就是利用训练集 D 估计参数 \theta _c

为明确起见,我们将P(X | c)记为 P(X | \theta _c)

事实上,概率模型的训练过程就是参数估计过程。

对于参数估计,统计学界的两个学派提供了不同的方案:

 频率主义学派:认为参数虽然未知,但却存在客观值,因此可通过优化似然函数等准则来确定参数值

贝叶斯学派:认为参数是未观察到的随机变量、其本身也有分布,因此可假定参数服从一个先验分布,然后基于观测到的数据计算参数的后验分布。

朴素贝叶斯分类算法_第8张图片

【引入独立性】

类条件概率P(X|c),它涉及关于X所有属性的联合概率,这个计算量很大。

所以朴素贝叶斯分类器采用了“属性条件独立性假设”:每个属性独立地对分类结果发生影响。

对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合分布概率;然后基于此模型,对给定的输入x,再利用贝叶斯定理求出其后验概率最大的输出y。

2.3 应用

贝叶斯公式:

朴素贝叶斯分类算法_第9张图片

扩展如下:

朴素贝叶斯分类算法_第10张图片

用下面这个例子来解释:

朴素贝叶斯分类算法_第11张图片

一对男女朋友,男生向女生求婚,男生的五个特点分别是不帅,不高,没有上进心,性格不好,家境贫寒,请你判断一下女生是嫁还是不嫁?

这是一个典型的分类问题,转为数学问题就是比较p(嫁|(不帅,不高,没有上进心,性格不好,家境贫寒))与p(不嫁|(不帅,不高,没有上进心,性格不好,家境贫寒))的概率,谁的概率大,我们就能给出嫁或者不嫁的答案!

这里我们联系朴素贝叶斯公式:

朴素贝叶斯分类算法_第12张图片

朴素贝叶斯分类算法_第13张图片

然后再计算各项就可以得到结果了。


总结

朴素贝叶斯算法是一种基于贝叶斯定理的分类算法,它的优缺点如下:

优点:

  1. 简单快速: 朴素贝叶斯算法是一种简单而高效的算法。它易于实现,计算速度快,尤其适用于大规模数据集。

  2. 对小规模数据表现良好: 即使在相对较小的数据集上,朴素贝叶斯仍然可以表现良好,而不需要大量的训练数据。

  3. 对于多类别问题适用: 朴素贝叶斯算法可以处理多类别分类问题,并且在这方面通常比其他算法表现得更好。

  4. 处理缺失数据: 朴素贝叶斯算法能够处理缺失数据,这使得它在现实世界的应用中更加鲁棒。

  5. 对不相关特征不敏感: 朴素贝叶斯算法假设特征之间相互独立,因此对于不相关的特征不敏感,这使得它在某些情况下表现良好。

缺点:

  1. 假设特征独立: 朴素贝叶斯算法的一个主要假设是特征之间相互独立,这在现实中并不总是成立。如果特征之间存在较强的关联性,模型可能会受到影响。

  2. 处理连续变量困难: 朴素贝叶斯算法通常假设特征是离散的,对于连续变量的处理相对较为困难。可以通过一些技术手段,如使用概率密度函数的方法来近似处理,但这增加了复杂性。

  3. 性能不一定最优: 尽管在许多情况下表现良好,但在某些问题上,朴素贝叶斯算法的性能可能不如其他更复杂的模型,如支持向量机或深度学习模型。

补充:

  1. 处理缺失数据的方式: 朴素贝叶斯算法在进行概率计算时,对于缺失的特征,会简单地忽略它们,而不是丢弃整个样本。这是因为在计算条件概率时,朴素贝叶斯算法只关注已知的特征,而对于未知的特征则不进行考虑。这种处理方式使得算法在面对缺失数据时更为容忍。

  2. 独立性假设: 朴素贝叶斯算法的核心假设是各个特征之间是相互独立的。在这种情况下,如果某个特征缺失,其他特征的计算仍然可以独立进行。这个假设使得算法对于缺失数据的影响相对较小,因为缺失一个特征并不会显著影响其他特征的计算。

缺点原因:

1.对于类条件概率P(X|c)来说,它涉及关于X所有属性的联合概率,直接根据样本出现的频率来估计将会遇到严重的困难。

例如,假设样本的d个属性都是二值的,则样本空间将有2^d种可能的取值。在现实应用中,这个值往往远大于训练样本数m,也就是说很多样本取值在训练集中根本没有出现,直接使用频率来估计类条件概率P(X|c)显然不行,因为“未被观测到”与“出现概率为零”通常来说是不一样的。

2.类条件概率P(X|c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得。为了避开这个障碍,朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。换言之,假设每个属性独立地对分类结果发生影响

你可能感兴趣的:(#,机器学习,机器学习,人工智能,sklearn)