机器学习|朴素贝叶斯算法(三)-深入理解朴素贝叶斯原理

简介: 准备好好弄一弄机器学习——朴素贝叶斯算法,目前总共有三篇博文。这一篇主要是从另一个角度理解一下朴素贝叶斯的思想,希望能有所收获( ̄︶ ̄)↗ 

机器学习|朴素贝叶斯算法(一)-贝叶斯简介及应用
机器学习|朴素贝叶斯算法(二)-用sklearn实践贝叶斯
机器学习|朴素贝叶斯算法(三)-深入理解朴素贝叶斯原理

机器学习|朴素贝叶斯算法(一)-贝叶斯简介及应用中通过计算穿长裤中女生的概率解释了贝叶斯算法。这里在提供另外一种思路:它给我们提供的是一种根据数据集$D$的内容变化更新假设概率$H$的方法。

这种理解在《贝叶斯思维:统计建模的python学习法》中定义为“历时诠释”,“历时”意味着某些事情随着时间而发生,即是假设的概率随着看到的新数据而变化。

根据贝叶斯定理:

$$ P\left ( H|D \right )=\frac{P\left(H \right )P\left(D|H\right)}{P\left(D\right)} $$

每一项的意思如下(结合第一篇女生穿长裤问题分析):

$H$---女生,$D$---穿长裤

$P(H)$称为先验概率,即在得到新数据前某一假设的概率
$P(H|D)$称为后验概率,即在看到新数据后,我们要计算的该假设的概率
$P(D|H)$是该假设下得到这一数据的概率,称为似然
$P(D)$是在任何假设下得到这一数据的概率,称为标准化常量

有些情况下,我们可以基于现有背景进行得知先验概率。比如在女生穿长裤问题中,我们就能知道女孩在学校所占人数的比例(概率)是多少,即使不知道具体的比例,我们也可以根据学校的性质(工科学校或者其他)来大概假设出女孩的概率。
**
在其他情况下,先验概率是偏主观性的。这也是频率学派提出的对贝叶斯学派的批评之一。因为对某一先验概率,由于使用不同背景信息作出判断,或者因为针对相同的前提条件作出了不同解读**。

似然是贝叶斯计算中最容易知道的部分,比如女孩中穿长裤的概率

标准化常量被定义为在所有的假设条件下这一数据出现的概率,因为考虑的是最一般的情况,所以不容易确定这个常量在具体应用场合的现实意义。因此我们可以通过全概率公式来求得。啰嗦一下:

定理 设试验E的样本空间为S,A为E的事件,$B_{1},B_{2},...,B_{n}$为S的一个划分,且$P\left(B_{i}\right)>0(i=1,2,3,....n)$,则

$$ P\left(A\right)=P\left(A|B_{1}\right)P\left(B_{1}\right)+P\left(A|B_{2}\right)P\left(B_{2}\right)+ $$

$$ ...+P\left(A|B_{n}\right)P\left(B_{n}\right). $$

称为全概率公式.

比如,穿长裤概率: $P(Boy) \times P(Pants|Boy) + U \times P(Girl) \times P(Pants|Girl)$。

既然提到了全概率公式,为了进一步理解贝叶斯公式,这里给出另一种贝叶斯公式的写法:

$$ P\left(B_{i}|A \right )=\frac{P\left(A|B_{i}\right)P\left(B_{i} \right )}{P\left(A \right )} $$

$$ =\frac{P\left(A|B_{i} \right )P\left(B_{i} \right )}{\sum_{j=1}^{n}P\left(A|B_{j} \right )P\left(B_{j} \right )},i=1,2,...,n. $$

上式中,样本空间$\Omega $中的一个完备事件群$\left\{B_{1},B_{2},...,B_{n}\right\}$,设$A$为$\Omega $中的一个事件,且$P\left(B_{i}\right)>0,i=1,2,3,....,n,P\left(A\right)>0$。推敲一下这个公式的意义:从形式上看这个公式不过是条件概率定义与全概率公式的简单推论。但是之所以著名的原因在于它的哲学意义。先看$P\left(B_{1}\right),P\left(B_{2}\right),...,P\left(B_{n} \right )$,这是在没有进一步信息(不知道$A$发生)时,人们对事件$B_{1},B_{2},...,B_{n}$发生可能性大小的认识(先验信息),在有了新信息(知道A发生)后,人们对事件$B_{1},B_{2},...,B_{n}$发生可能性大小新的认识体现在$P\left(B_{1}|A \right ),P\left(B_{2}|A \right ),...,P\left(B_{n}|A \right ).$

如果我们把事件A看成“结果”,把诸事件$B_{1},B_{2},...,B_{n}$看成导致这一结果的可能“原因”,则可以形象地把全概率公式看成由“原因”推“结果”。还是举那个例子,事件$A$——穿长裤,事件$B_{1}$——女生,事件$B_{2}$——男生,则$P\left(A\right)=P\left(A|B_{1}\right)P\left(B_{1}\right)+P\left(A|B_{2} \right )P\left(B_{2} \right )$,这里男生女生就是穿裤子这个“结果”的“原因”。而贝叶斯公式正好相反,其作用在于由“结果”推“原因”。现在有了结果A,在导致A发生的众多原因中,到底 是哪个原因导致了$A$发生(或者说:到底是哪个原因导致$A$发生的可能性最大)?如果这里理解有点障碍,可以看一下我在 机器学习|朴素贝叶斯算法(二)-用sklearn实践贝叶斯中详细讨论过的概率,似然,后验概率的关系。

好了,关于朴素贝叶斯算法目前只学习了这么多,之后进行实践操作的时候还会再补充,希望能有所收获╰( ̄ω ̄o)

目录
相关文章
|
15天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
44 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
16天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
20 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
1月前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
26天前
|
机器学习/深度学习 算法 Python
群智能算法:深入解读人工水母算法:原理、实现与应用
近年来,受自然界生物行为启发的优化算法备受关注。人工水母算法(AJSA)模拟水母在海洋中寻找食物的行为,是一种新颖的优化技术。本文详细解读其原理及实现步骤,并提供代码示例,帮助读者理解这一算法。在多模态、非线性优化问题中,AJSA表现出色,具有广泛应用前景。
|
1月前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
165 1
|
2月前
|
机器学习/深度学习 存储 算法
图解最常用的 10 个机器学习算法!
图解最常用的 10 个机器学习算法!
|
3天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
1月前
|
算法 BI Serverless
基于鱼群算法的散热片形状优化matlab仿真
本研究利用浴盆曲线模拟空隙外形,并通过鱼群算法(FSA)优化浴盆曲线参数,以获得最佳孔隙度值及对应的R值。FSA通过模拟鱼群的聚群、避障和觅食行为,实现高效全局搜索。具体步骤包括初始化鱼群、计算适应度值、更新位置及判断终止条件。最终确定散热片的最佳形状参数。仿真结果显示该方法能显著提高优化效率。相关代码使用MATLAB 2022a实现。
|
1月前
|
算法 数据可视化
基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
奇异谱分析(SSA)是一种基于奇异值分解(SVD)和轨迹矩阵的非线性、非参数时间序列分析方法,适用于提取趋势、周期性和噪声成分。本项目使用MATLAB 2022a版本实现从强干扰序列中提取趋势线,并通过可视化展示了原时间序列与提取的趋势分量。代码实现了滑动窗口下的奇异值分解和分组重构,适用于非线性和非平稳时间序列分析。此方法在气候变化、金融市场和生物医学信号处理等领域有广泛应用。
|
1月前
|
资源调度 算法
基于迭代扩展卡尔曼滤波算法的倒立摆控制系统matlab仿真
本课题研究基于迭代扩展卡尔曼滤波算法的倒立摆控制系统,并对比UKF、EKF、迭代UKF和迭代EKF的控制效果。倒立摆作为典型的非线性系统,适用于评估不同滤波方法的性能。UKF采用无迹变换逼近非线性函数,避免了EKF中的截断误差;EKF则通过泰勒级数展开近似非线性函数;迭代EKF和迭代UKF通过多次迭代提高状态估计精度。系统使用MATLAB 2022a进行仿真和分析,结果显示UKF和迭代UKF在非线性强的系统中表现更佳,但计算复杂度较高;EKF和迭代EKF则更适合维数较高或计算受限的场景。
下一篇
无影云桌面