机器学习中的朴素贝叶斯算法

朴素贝叶斯分类器算法

朴素贝叶斯分类器算法

分类器是一种机器学习算法,可将数据归类为一组或多个“类”。电子邮件分类器就是一个分类器示例,它会扫描电子邮件并按类别标签进行过滤:垃圾邮件或非垃圾邮件。

机器学习中的朴素贝叶斯分类器是一种用于分类任务的监督机器学习。

朴素贝叶斯分类器算法

朴素贝叶斯用于解决分类问题。它根据对象的概率进行预测。朴素贝叶斯基于贝叶斯定理,主要用于文本分类。朴素贝叶斯是一种易于实现且训练速度快的概率分类算法。

由于朴素贝叶斯分类器基于贝叶斯定理,因此它被称为概率分类器。它根据项目的概率进行预测。

被称为朴素贝叶斯的原因?

朴素贝叶斯分类器有两个词:Naive 和 Bayes。为什么是 Navie?该算法将所有单词句子视为相同。例如,“You are”和“Are you”对于该算法是相同的。它不依赖于特征或特征的出现。如果你想识别苹果,那么你需要颜色为红色、形状为球形、味道为甜味才能识别为苹果。这意味着这些特征彼此独立。

  • 朴素贝叶斯分类器假设特征彼此独立。由于这在现实生活中的数据中很少可能实现,因此该分类器被称为朴素的。
  • 该分类算法基于贝叶斯定理,因此称为朴素贝叶斯分类器。

朴素贝叶斯定理

贝叶斯定理用于求出条件概率依赖于先验知识的假设的概率。该定理以托马斯·贝叶斯的名字命名。朴素贝叶斯分类器基于贝叶斯定理给出的条件概率原理工作。

为了理解贝叶斯定理,让我们看一个简单的朴素贝叶斯分类器示例:抛两枚硬币。我们可以通过抛两枚硬币获得这些样本空间:{HH、HT、TH、TT}。因此,这些事件的概率将是:

  • 获得两个头 = 1/4
  • 至少有一次反面 ​​= 3/4
  • 第一枚硬币是反面,第二枚硬币是正面 = 1/2
  • 假设第一枚硬币是正面,则掷出两次正面 = 1/2

贝叶斯定理根据已经发生的另一事件的概率来计算某一事件发生的概率。贝叶斯定理的公式如下:

P(A|B) = (P(B|A) * P(A)) / P(B)

P(A|B) 当 B 已经发生时,A 也发生的概率。概率 P(B) 不应为零。

  • 您需要找到当事件 B(证据)为真时事件 A 的概率。
  • P(A)是A的先验(先验,即在证明之前观察到的事件的概率)。这里,事件B是一个未知实例的值。
  • P(A|B)是事件B的后验概率,即看了证据之后该事件发生的概率。

朴素贝叶斯分类器的工作示例

让我们以购物为例来了解贝叶斯朴素分类器的工作原理。在此数据集中,有一个包含 30 行的小样本数据集。

数据集

朴素贝叶斯分类器的工作示例

问题是使用朴素贝叶斯定理预测一个人是否会在特定的日期、折扣和免费送货组合下购买产品。

朴素贝叶斯分类器的工作示例

步骤1) 我们将使用数据集中提到的输入类型(例如天数、折扣和免费送货)为每个属性创建频率表。

朴素贝叶斯分类器的工作示例

假设事件“购买”表示为“A”,独立变量分别为“折扣”、“免费送货”和“天数”,表示为“B”。我们将使用这些事件和变量来应用贝叶斯定理。

步骤2) 现在让我们逐一计算似然表。

朴素贝叶斯分类器的工作示例

例如1:

根据该似然表,我们将计算如下的条件概率。

P(A) = P(No Buy) = 6/30 = 0.2
P(B) = P(Weekday) = 11/30 = 0.37
P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33

并且,利用贝叶斯定理找到 P(A/B),

P(A/B)
= P(No Buy / Weekday)
= P(Weekday / No Buy) * P(No Buy) / P(Weekday)
= (2/6 * 6/30) / (11/30)
= 0.1818

类似地,如果 A 为买入,那么

= P(Buy / Weekday)
= P(Weekday / Buy) * P(Buy) / P(Weekday)
= (9/24 * 24/30) / (11/30)
= 0.8181

请注意: 由于 P(购买 | 工作日)大于 P(不购买 | 工作日),我们可以得出结论,客户最有可能在工作日购买该产品。

步骤3) 类似地,我们可以根据所有三个变量计算事件发生的可能性。现在我们将使用上述频率表计算所有三个变量的似然表。

朴素贝叶斯分类器的工作示例

例如2:

现在,使用这三个可能性表,我们将根据“天”、“折扣”和“免费送货”的特定组合来计算客户是否有可能进行购买。

这里,让我们结合这些因素:

  • 日 = 假日
  • 折扣 = 是
  • 免费送货 = 是

何时,A = 购买

计算以下日期、折扣和免费送货组合的购买条件概率。

其中 B 为:

  • 日 = 假日
  • 折扣 = 是
  • 免费送货 = 是

并且 A = 购买

因此,

= P(A/B)
= P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30)
= 0.986

当 A = 不购买时

类似地,计算以下日期、折扣和免费送货组合下的购买条件概率。

其中 B 为:

  • 日 = 假日
  • 折扣 = 是
  • 免费送货 = 是

并且 A = 不买

因此,

= P(A/B)
= P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30)
= 0.027

步骤4) 因此,

购买概率 = 0.986

不购买的概率 = 0.027

最后,我们有了当天购买的条件概率。现在让我们概括这些概率以获得事件发生的可能性。

  • 概率总和 = 0.986 + 0.027 = 1.013
  • 购买可能性 = 0.986 / 1.013 = 97.33 %
  • 不购买的可能性 = 0.027 / 1.013 = 2.67 %

请注意,97.33% 大于 2.67%。我们可以得出结论,一般客户会在节假日以折扣和免费送货的方式购买。

朴素贝叶斯模型的类型

朴素贝叶斯分类器有很多种类型。这里我们讨论了多项式、伯努利和高斯朴素贝叶斯分类器。

1. 多项式朴素贝叶斯

这种朴素贝叶斯模型用于文档分类问题。它使用表示文档中单词频率的特征。分类器考虑单词的出现次数和数量来确定文档属于特定类别(例如体育、政治或技术)的概率。

2.伯努利朴素贝叶斯

这类似于多项式朴素贝叶斯。伯努利朴素贝叶斯分类器用于文档分类任务。但是,它使用布尔预测器。它表示单词是否存在,并且只取值是或否。分类器根据单词是否出现在文本中来计算概率。

3. 高斯朴素贝叶斯

此分类器适用于连续值,但不适用于离散值。此分类器使用 高斯 分布,即均值和方差。

高斯朴素贝叶斯

条件概率公式变为,

高斯朴素贝叶斯

朴素贝叶斯分类器的优点和局限性

机器学习中的朴素贝叶斯算法有各种优点和缺点。

朴素贝叶斯分类器的优点

  • 简单高效: 朴素贝叶斯算法简单易训练和实现。由于计算成本低,因此效率高。它可以高效处理大型数据集。
  • 快速训练和预测: 朴素贝叶斯由于特征间的独立性,不需要太多的训练数据,模型训练完成后就能快速进行预测。
  • 可扩展性: 朴素贝叶斯可以处理具有大量特征的高维数据集。即使特征数量大于训练示例数量,它也能表现良好。它会随着数据点和预测器的数量而扩展。它既能处理连续数据,也能处理离散数据。
  • 对不相关特征的鲁棒性: 它对不相关的特征不敏感。
  • 适用于小型训练集: 朴素贝叶斯即使在训练数据有限的情况下也能提供合理的结果。它可以处理训练实例数量较少的情况。它不需要太多的训练数据。

朴素贝叶斯分类器的局限性

朴素贝叶斯 机器学习 假设所有特征都是相互独立的。因此,它无法学习数据中不同特征之间的关系。它将每个特征视为与其他特征没有关系。

为了解决这个问题,你可以使用 决策树、随机森林、支持向量机(SVM)、神经网络等。这些算法能够学习数据中特征之间的复杂关系和依赖关系。因此,它们可以预测更准确的结果。

朴素贝叶斯分类器的应用

由于该算法快速高效,您可以使用它进行实时预测。

垃圾邮件检测

电子邮件服务 (例如 Gmail)使用此算法来确定电子邮件是否为垃圾邮件。此算法非常适合垃圾邮件过滤。

情感分析

它可以根据词汇选择、句子结构和上下文等特征将文本分类为正面、负面或中性。它可用于社交媒体监控、客户评论和市场研究。

文件分类

它可以根据文档中特定词语或特征出现的频率或存在程度,将文档分为体育、政治、技术或金融等类别。

推荐系统

它可以分析用户偏好、历史数据和商品特征,以预测用户的兴趣或偏好,从而推荐产品、电影或文章。

该分类器算法还用于人脸识别、天气预报、医疗诊断、购物、新闻分类等。您可以在 Python。sklearn 中有朴素贝叶斯分类器,即 sklearn.naive_bayes。它是实现该算法的模块。

结语

机器学习中的朴素贝叶斯算法是主要用于垃圾邮件检测、新闻分类、情绪分析、天气预报、购物等的分类器。朴素贝叶斯算法基于贝叶斯定理。这 算法 简单易行。由于它速度快,我们可以在实时应用中使用它。它最大的缺点是它假设特征是独立的(因为独立特征在现实生活中很少可能存在,所以它被称为朴素的)。它将每个特征视为平等。为了克服这个缺点,您可以使用其他分类器,如决策树、随机森林、支持向量机 (SVM) 等。