生活场景引入
假设你有一个朋友,他经常给你分享一些他的日常活动,你发现他的活动和天气有一定的关系。比如说,晴天的时候他可能去打篮球,下雨天的时候他可能在家看书。现在有一天,你不知道天气如何,但是朋友告诉你他去打篮球了,你就可以根据以往的经验,猜测这天大概率是晴天。朴素贝叶斯算法就和这个猜测过程有点类似。
核心概念
1. 先验概率
先验概率就像是我们已经知道的一些基本情况。还是用上面的例子,假如在过去的 100 天里,有 30 天下雨,70 天晴天。那么下雨的先验概率就是 30%(30÷100),晴天的先验概率就是 70%(70÷100)。这是在没有其他额外信息的情况下,我们对天气情况的一个初步判断。
2. 条件概率
条件概率是指在某个条件发生的情况下,另一个事件发生的概率。比如在晴天的情况下,朋友去打篮球的概率。假如在 70 个晴天里,朋友有 50 天去打篮球了,那么在晴天时朋友去打篮球的条件概率就是 50÷70 ≈ 71.4%。同样的,如果在 30 个下雨天里,朋友只有 5 天去打篮球,那么在下雨天时朋友去打篮球的条件概率就是 5÷30 ≈ 16.7%。
3. 朴素的含义
“朴素” 在朴素贝叶斯算法里是一个很关键的假设。它假设所有的特征之间是相互独立的。就好比在判断天气的时候,我们只考虑朋友是否去打篮球这一个特征,并且认为这个特征和其他可能影响天气判断的因素(比如当天的气温、湿度等)没有关系。虽然在现实生活中,这些因素可能是相互关联的,但为了简化计算,朴素贝叶斯算法做了这样的假设。
算法原理应用
现在我们回到根据朋友去打篮球来猜测天气的问题。我们要分别计算在朋友去打篮球的情况下,是晴天和是下雨天的概率,然后比较这两个概率,哪个概率大,我们就猜测是哪种天气。
根据贝叶斯公式(这里不用纠结公式的具体形式),我们可以算出:
在朋友去打篮球的情况下是晴天的概率 = 晴天的先验概率 × 在晴天时朋友去打篮球的条件概率。也就是 70% × 71.4% ≈ 50%。
在朋友去打篮球的情况下是下雨天的概率 = 下雨天的先验概率 × 在下雨天时朋友去打篮球的条件概率。也就是 30% × 16.7% ≈ 5%。
因为 50% 大于 5%,所以我们猜测这天是晴天。
文本分类中的应用
在文本分类任务中,比如要判断一篇文章是关于体育还是科技。我们可以把文章中的每个单词看作一个特征。
先计算体育类文章和科技类文章的先验概率,也就是在所有文章中,体育类文章和科技类文章分别占的比例。
然后计算在体育类文章中出现某个单词的条件概率,以及在科技类文章中出现这个单词的条件概率。
当有一篇新的文章时,根据文章中出现的单词,结合上面计算的先验概率和条件概率,分别计算这篇文章是体育类和科技类的概率,最后把文章分类到概率大的那一类。
通过这种方式,朴素贝叶斯算法就可以完成文本分类的任务啦。