朴素贝叶斯分类算法--分别基于三种语言实现

一、朴素贝叶斯

  1. 简介

贝叶斯方法是以贝叶斯原理为基础,使用概率统计的知识对样本数据集进行分类。由于其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。贝叶斯方法的特点是结合先验概率和后验概率,即避免了只使用先验概率的主观偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的情况下表现出较高的准确率,同时算法本身也比较简单。
  1. 算法原理

贝叶斯定理用于解决以下问题:已知某条件的概率,如何求到两个事件交换后的概率,也就是在已知p(X | Y)的情况下如何求到p(Y | X)。其中p(X | Y)表示事件Y发生的前提下X发生的概率,称之为事件Y发生的条件下事件X的概率。公式如下:

其中p(X,Y)表示为X,Y同时发生的概率。根据上式同理可得:

根据(1)和(2)式整理可得如下公式,称之为贝叶斯定理。

在日常生活中,p(X|Y)是非常容易得到的,后验概率p(Y|X)不容易得到,通过贝叶斯定理就可以求得p(Y|X)。根据贝叶斯定理可以实现分类操作。

  1. 算法执行流程

在给定的类标号y,朴素贝叶斯分类在估计类条件时假设属性之间条件独立,条件假设可以形式化的表示为:

其中每个属性集包含d个属性。

关于条件独立性,如给定Z,若X,Y之间条件独立可以写成如下公式:p(X|Y,Z)=p(X|Z)。其中X,Y条件独立也可以写成如下公式:

有了条件独立假设,就不必计算X的每一组分组的类条件概率,只需要对给定的Y,计算每一个Xi的条件概率。这种方法更实用,不需要很大的训练集就能获得较好的概率估计。朴素贝叶斯分类对每个分类Y的计算后验概率:

由于对所有的Y,p(X)是固定的,只需要找到使得分子最大的就可以了。

如何在分类属性和连续属性下求得条件概率

(1)在分类属性下求条件概率

对分类属性Xi,根据类y中的属性值等于Xi的训练实例的比例估计条件概率即可。

(2)在连续属性下求条件概率

在这里,可以假设连续变量符合某种概率分布,然后使用训练数据估计分布参数。其中高斯分布通常被用来表示连续属性的类条件的概率分布。对于每个类y,属性Xi的类条件概率为:

其中可以用所有训练记录关于Xi的样本均值来估计。同理,参数可以用这些训练记录的样本方差估计。条件概率根据Xi的落入区间进行积分求得即可。

二、朴素贝叶斯算法举例

  1. 案例说明和数据

现在给出一些购买计算机实例的数据集如下:

Age

income

student

credit_rating

buys_computer

25

High

No

Fair

No

25

High

No

Excellent

No

33

High

No

Fair

Yes

41

猜你喜欢

转载自blog.csdn.net/m0_51260564/article/details/129455753