一、贝叶斯算法
朴素贝叶斯算法是一种基于贝叶斯定理的分类算法。在理解朴素贝叶斯算法之前,需要先了解贝叶斯定理。最早出现在英国数学家托马斯·贝叶斯(Thomas Bayes)在 1763 年发表的一篇论文中,该定理实际上是一种用于计算在给定某些前提条件下某个事件发生的概率的公式。它表达了一个事件的概率,基于相关证据的概率。
贝叶斯公式又被称为贝叶斯规则,是概率统计中的应用所观察到的现象对有关概率分布的主观判断(先验概率)进行修正的标准方法。如果你看到一个人总是做一些好事,则那个人多半会是一个好人。这就是说,当你不能准确知悉一个事物的本质时,你可以依靠与事物特定本质相关的事件出现的多少去判断其本质属性的概率。用数学语言表达就是:支持某项属性的事件发生得愈多,则该属性成立的可能性就愈大。贝叶斯公式中涉及到先验概率、后验概率、条件概率等,具体解释如下。
先验概率:即基于统计的概率,是基于以往历史经验和分析得到的结果,不需要依赖当前发生的条件。
后验概率:则是从条件概率而来,由因推果,是基于当下发生了事件之后计算的概率,依赖于当前发生的条件。
条件概率:记事件A发生的概率为P(A),事件B发生的概率为P(B),则在B事件发生的前提下,A事件发生的概率即为条件概率,记为P(A|B),读作“在B条件下A的概率”。
联合概率:表示两个事件共同发生的概率。A与B的联合概率表示为P(AB),或者P(A,B),或者P(A∩B)。
B事件发生的前提下,A事件发生的概率: P(A|B) A 和 B的联合概率,B的概率。
贝叶斯公式:贝叶斯公式便是基于条件概率P(B|A)求的联合概率,再求得P(A|B)。设 A 和 B 是两个事件,且 P(B) > 0。则在事件 B 已经发生的条件下事件 A 发生的概率 P(A|B)为:
其中,P(A)和 P(B)分别是事件 A 和事件 B 发生的概率,P(B|A)是在事件 A 发生的条件下事件 B 发生的概率。在分类问题中,需要根据已知的特征来预测未知数据的类别。朴素贝叶斯算法就是基于贝叶斯定理来实现分类的。它假设特征之间相互独立,因此被称为“朴素”贝叶斯算法。
将A看成“类别”,B看成“属性”,那么贝叶斯公式看成:
具体而言,需要先根据训练数据计算出每个类别的先验概率 P(Ci)。然后对于每个特征,计算在给定类别 Ci的条件下该特征的概率 P(Xi|Ci)。最终,对于一个新的数据点,根据贝叶斯定理计算其属于每个类别的后验概率,然后将其分类为后验概率最大的类别。
在朴素贝叶斯算法中,先验概率是指在考虑任何观测数据之前,基于先前已知的信息和经验,对于每个可能事件的概率的估计。通常用 P(C)表示,其中 C 是类别。条件概率是指给定某些已知条件下,某个事件发生的概率。在朴素贝叶斯算法中,它是指在已知一个样本的特征向量的情况下,该样本属于某个类别的概率,通常用 P(X|C)表示,其中 X 表示特征向量,C 是类别。后验概率是指在考虑了新的观测数据后,对于每个可能事件的概率的重新估计。在朴素贝叶斯算法中,它是指在已知一个样本的特征向量后,该样本属于某个类别的概率,通常用 P(C|X)表示,其中 X 表示特征向量,C 是类别。朴素贝叶斯算法的基本思想是根据贝叶斯定理,通过先验概率和条件概率计算后验概率,从而进行分类。具体地,对于一个给定的特征向量 X,朴素贝叶斯算法计算每个类别的后验概率 P(C|X),并将 X 分类为具有最高后验概率的类别。
朴素贝叶斯算法是应用最为广泛的分类算法之一,在垃圾邮件分类等场景展露出了非常优秀的性能。
二、经典分类器算法对比分析
除朴素贝叶斯算法以外,还有一些其他的经典分类器算法,下面介绍几种常见的分类器算法及其优缺点。
1、逻辑回归(Logistic Regression)
逻辑回归是一种广泛应用于分类问题的机器学习算法,它主要是用于建立分类模型,通过学习样本数据的特征来对未知样本进行分类。逻辑回归属于一种广义的线性模型,因此其可以解决二分类问题和多分类问题。它可以通过优化损失函数,寻找最佳的权重参数来训练模型,并能够很好地处理线性可分和线性不可分的数据。此外,逻辑回归还能够生成可解释性强的分类结果,并且在实现上比较简单,计算速度也较快。
但是逻辑回归的缺点也是非常明显的,容易受到特征相关性、噪声和缺失数据的影响;只能处理二分类问题,而对于多分类问题需要进行逐一拆分和处理;对于非线性的决策边界和非凸问题表现较差。此外,逻辑回归分类器对于数据的分布假设为线性分布,因此在数据非线性可分时表现较差。相比逻辑回归,朴素贝叶斯算法具有更好的计算效率和更高的准确率,因为它能够更好地利用文本分类问题中的词频信息。此外,朴素贝叶斯算法的训练和预测过程简单,不需要进行复杂的数值优化,因此更易于实现和部署。
2、K近邻算法(K-Nearest Neighbors)
是一种基于实例的学习算法,属于无监督学习中的分类算法。KNN 的基本思想是:如果一个样本在特征空间中的 k 个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别。K 近邻算法的主要优点在于它的简单性和灵活性。K 近邻算法不需要假设数据集的概率分布,也不需要在训练之前进行参数估计,因此它可以适用于各种不同类型的数据,包括非线性数据。K 近邻算法还可以进行增量式的学习,即可以随时添加新的训练样本,而无需重新训练整个模型。此外,K 近邻算法也适用于多分类问题和回归问题。
虽然 K 近邻算法具有简单且灵活的优点,但其也存在较为明显的缺点。需要大量的内存空间存储训练数据,测试时需要计算所有训练数据与测试数据之间的距离,计算量较大,时间复杂度高,特别是当数据量非常大时,算法的效率会受到影响。另外,该算法对于异常数据敏感,因为它只是通过距离来判断数据相似性,而不考虑特征本身的重要程度。此外,在数据维度较高时,由于维度灾难的影响,算法的准确率也会受到影响。
3、决策树算法(Decision Tree)
决策树算法是一种基于树结构进行分类和预测的机器学习算法,通过递归地将数据集划分为不同的子集,并在每个子集上进行决策,最终构建出一颗决策树。决策树算法可以应用于分类问题和回归问题,并且具有易于理解、可解释性强、适用于各种类型的数据等优点。