生活援引
在日常生活中,我们总会去分辨、描述各种物品,例如你面前放着一个苹果,你对它的描述可能是红红的、椭圆形的,尝一口可能是甜甜的或者酸酸的;同样的,我们可以逆过来想,如果有人描述一种水果是红红的、圆圆的,咬起来还很甜、很脆,你的脑海中可能会推测该水果是苹果。
我们的计算机也是同样的道理,根据物品的特征来对物品进行分类。
特征数据转化计算机信息
但计算机并不能够像人脑那样,通过视觉直接能够将物品分辨出来。因此,这就需要将原始信息转化成计算机能够看的懂的数据。计算机能够看懂的无非是一串串的二进制串,因此我们需要提取水果的特征并转化成数字。
我们拿水果举例,我们可能会考虑它们的形状、外表颜色、外表条纹、重量、握感、口感等等。
从上表我们可以看出,我们将水果的属性种类都规定了具体的数字,同时,重量这一属性我们将其改为离散型数据,因为贝叶斯定理处理的数据是离散的。
现在是大数据的时代,数据处理也是非常热门的方向,而且我们搞机器学习肯定也离不开大量的数据集来训练模型,太少的数据具有太大的偶然性。
我们在这里先适当增加水果样本的数量(先准备10个,方便进一步的计算)。
贝叶斯定理
贝叶斯定理是朴素贝叶斯的核心算法,我们知道借助贝叶斯法则,我们能够通过先验概率和条件概率来估算后验概率,我们先看一下贝叶斯公式。
P(A)和P(B)是先验概率
P(B|A)是条件概率
P(A|B)是后验概率
在这里,我们规定一下,B代表水果的特征,A代表水果的分类。
因此,上述公式中的概率便有了具体的含义。
P(A)表示A分类出现在样本数据中的概率
P(B)表示B特征出现在样本数据中的概率
P(B|A)表示A分类中出现B特征的概率
P(A|B)表示在水果具有B特征下属于A分类的概率
根据上述的规则,我们将P(B|A)统计出来。
这其中存在概率为0的数据,是因为在该分类中不存在该特征。
由于训练集样本的不充分导致的分类错误显然是不理想的。一个最简单的解决方法便是用一个小概率来取代0概率,我们称这种方法为平滑。
举例计算、验证
假设我们这里有一个新水果,它的口感是甜的,形状是圆的,那它是属于苹果、甜橙还是西瓜呢?
上图是我计算的苹果的概率,在公式第二行上,会看到我将一个联合概率分成了两个概率的乘积。学过概率论,我们都知道要实现的前提必须是shape和taste相互独立。
这也是朴素贝叶斯的重要假设,所谓的朴素其实就是各特征之间相互独立。
同样的,我们将属于甜橙和西瓜的概率计算出来。
0.00198<0.00798<0.26934,所以该水果最有可能属于甜橙。
总结
朴素贝叶斯分类步骤:
准备数据:针对水果分类这个案例,我们收集了若干水果的实例,并从水果的常见属性入手,将其转化为计算机所能理解的数据。这种数据也称为训练样本。
建立模型:通过手头上水果的实例,我们让计算机统计每种水果、属性出现的先验概率,以及在某个水果分类下某种属性出现的条件概率。这个过程也被称为基于样本的训练。
分类新数据:对于一颗新水果的属性数据,计算机根据已经建立的模型进行推导计算,得到该水果属于每个分类的概率,实现了分类的目的。这个过程也被称为预测。