机器学习算法基础——Task02朴素贝叶斯

1.朴素贝叶斯“朴素”在哪里?

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法 。
最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)。和决策树模型相比,朴素贝叶斯分类器(Naive Bayes Classifier 或 NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。
贝叶斯方法是以贝叶斯原理为基础,使用概率统计的知识对样本数据集进行分类。由于其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。贝叶斯方法的特点是结合先验概率和后验概率,即避免了只使用先验概率的主观偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的情况下表现出较高的准确率,同时算法本身也比较简单。
朴素贝叶斯方法是在贝叶斯算法的基础上进行了相应的简化,即假定给定目标值时属性之间相互条件独立。也就是说没有哪个属性变量对于决策结果来说占有着较大的比重,也没有哪个属性变量对于决策结果占有着较小的比重。虽然这个简化方式在一定程度上降低了贝叶斯分类算法的分类效果,但是在实际的应用场景中,极大地简化了贝叶斯方法的复杂性。

朴素贝叶斯方法就是对传统贝叶斯方法进行了理想性简化,大大降低计算复杂度。在精度可接受范围内,工程上我们显然更喜欢计算复杂度更低的算法。

2.如何推导

朴素贝叶斯分类(NBC)是以贝叶斯定理为基础并且假设特征条件之间相互独立的方法,先通过已给定的训练集,以特征词之间独立作为前提假设,学习从输入到输出的联合概率分布,再基于学习到的模型,输入X求出使得后验概率最大的输出Y。
设有样本数据集
在这里插入图片描述
对应样本数据的特征属性集为

在这里插入图片描述
类变量为
在这里插入图片描述
,即D可以分为y的m个类别。其中各个x相互独立且随机,则Y的先验概率 P(Y),Y的后验概率 P(Y|X),由朴素贝叶斯算法可得,后验概率可以由先验概率 P(Y)、证据 P(X)、类条件概率 P(X|Y)计算出:
在这里插入图片描述

朴素贝叶斯基于各特征之间相互独立,在给定类别为 的情况下,上式可以进一步表示为下式:
在这里插入图片描述
由以上两式可以计算出后验概率为:
在这里插入图片描述
由于的大小是固定不变的,因此在比较后验概率时,只比较上式的分子部分即可。因此可以得到一个样本数据属于类别的朴素贝叶斯计:
在这里插入图片描述

3.优缺点

优点

朴素贝叶斯算法假设了数据集属性之间是相互独立的,因此算法的逻辑性十分简单,并且算法较为稳定,当数据呈现不同的特点时,朴素贝叶斯的分类性能不会有太大的差异。换句话说就是朴素贝叶斯算法的健壮性比较好,对于不同类型的数据集不会呈现出太大的差异性。当数据集属性之间的关系相对比较独立时,朴素贝叶斯分类算法会有较好的效果。

缺点

属性独立性的条件同时也是朴素贝叶斯分类器的不足之处。数据集属性的独立性在很多情况下是很难满足的,因为数据集的属性之间往往都存在着相互关联,如果在分类过程中出现这种问题,会导致分类的效果大大降低。

以上是对朴素贝叶斯算法的一些理解和整理,其中涉及到的相关概念,比如生成模型、、判别模型等可以自行查找准确定义,仔细思考辨析。
相关算法的Python实现可以参考
https://github.com/datawhalechina/team-learning/blob/master/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AE%97%E6%B3%95%E5%9F%BA%E7%A1%80/Task2%20bayes_plus.ipynb

你可能感兴趣的:(python,机器学习)