vlambda博客
学习文章列表

人工智能基础|朴素贝叶斯 SECTION1.0


小编提示:今天开始,我们将开启一个全新板块:人工智能基础,此系列也为连载系列,在学习Python之余,也让我们换个口味,走进AI的世界吧。

朴素贝叶斯原理讲解及案例实现

1. 概念介绍

朴素贝叶斯是根据贝叶斯定理设计的模型。模型求解在得到某样本的条件下,该样本属于各个类别的后验概率,通过比较各个类别后验概率的大小,来确定将样本分到哪一类。基于朴素贝叶斯有三个常用模型,伯努利模型、多项式模型和高斯模型。伯努利模型与多项式模型都是用于离散特征,高斯模型用于连续特征。前两者的区别在于计算粒度不一样,多项式模型以单词为粒度,伯努利模型以文件为粒度,因此二者后验概率的计算方法不同。本案例通过伯努利模型实现。

1.1 计算公式

1.1.1 后验概率

根据贝叶斯定理,对一个分类问题,给定样本特征x,样本属于类别 的概率如公式(1)。在判断类别时,只需要将样本属于各类别的概率进行比较将其分为概率最大的那个类别即可。类别不同时, 的值保持不变,因此只需要计算条件概率 与先验概率 即可。

1.1.2 条件概率

朴素贝叶斯有一个重要的假设:特征之间条件独立。这正是“朴素”二字的含义。在这一假设条件下,条件概率的计算公式可以做如公式(2)的转换,即通过每一个特征的条件概率连乘得到。

每一个特征取值的条件概率通常由公式(3)计算得到。 表示类别为 ,特征 的值为 的样本数, 表示类别为 的样本数。

1.1.3 先验概率

先验概率通常由公式(4)计算得到。 表示类别为 的样本数, 表示总样本数。 表示总类别数。

1.1.4 概率值下溢

由于后验概率是由许多概率值相乘得到的,而概率值的范围为[0,1],得到的结果有可能会是一个非常小的数值。当变量的数据类型所提供的位数无法适应这个非常小的数值时,就会发生下溢,导致模型出现问题。解决的方法是对概率值取对数。因此后验概率最终的计算方式为公式(5)。由于 不用计算,所以公式中略去了分母部分。
由公式5可以看出,朴素贝叶斯将分类问题最终落到求每个特征的条件概率以及先验概率上。

1.2 建模流程

(1)准备数据:具体模型不同,所需数据类型不同。伯努利模型和多项式模型需要文本数据或者离散特征数据,高斯模型需要连续特征数据。本案例使用伯努利模型,所用数据为文本数据。

(2)训练算法:调用sklearn.naive_bayes库中的MultinomialNB模型,用训练集数据进行训练。

(3)测试算法:用训练好的模型对测试集进行分类,计算准确率。

TO BE CONTINUED

文字|XXL

排版|Luyee

版权所有|MaxSwell

点击下方查看更多