推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 人人都是极客 > Peter教你谈情说AI | 06朴素贝叶斯分类器

Peter教你谈情说AI | 06朴素贝叶斯分类器

人人都是极客 2018-10-27

开始我们谈到回归问题和分类问题,其中回归问题可以用梯度下降法求出其模型,那么分类模型可以通过什么方法可以求出呢?

我们知道回归模型是预测一个量,分类模型则是预测一个标签。换一个角度来看,回归模型输出的预测值则是连续值;而分类模型输出的预测值是离散值。也就是说输入一个样本给模型,回归模型给出的预测结果是在某个值域上的任意值;而分类模型则是给出特定的某几个离散值之一。

接下来我们就讲一个做分类的模型:朴素贝叶斯分类器。


朴素贝叶斯法

在讲朴素贝叶斯分类器之前,我们先来看看概率统计中一个非常重要的定理:贝叶斯定理。

这个公式用语言解释就是:在 B 出现的前提下 A 出现的概率,等于 A 和 B 都出现的概率除以 B 出现的概率。换句话说就是后验概率和先验概率的关系。

上面公式是当 B 作为 A 的条件出现时,我们假定它总共只有一个特征。但在实际应用中,很少有一件事只受一个特征影响的情况,往往影响一件事的因素有多个。假设,影响 B 的因素有 n 个,分别是Peter教你谈情说AI | 06朴素贝叶斯分类器

则P(A|B)可以写为:

Peter教你谈情说AI | 06朴素贝叶斯分类器

A 的先验概率 P(A) 和多个因素的联合概率 Peter教你谈情说AI | 06朴素贝叶斯分类器 都是可以单独计算的,与A和bi之间的关系无关,因此这两项都可以被看作常数。对于求解Peter教你谈情说AI | 06朴素贝叶斯分类器最关键的是 Peter教你谈情说AI | 06朴素贝叶斯分类器根据链式法则,可得:

Peter教你谈情说AI | 06朴素贝叶斯分类器

上面的求解过程,看起来好复杂,但是,如果从b1到bn这些特征之间,在概率分布上是条件独立的,也就是说每个特征bi与其他特征都不相关。

那么,当i不等于j时,有Peter教你谈情说AI | 06朴素贝叶斯分类器—— 无关条件被排除到条件概率之外。因此,当 Peter教你谈情说AI | 06朴素贝叶斯分类器中每个特征与其他 n-1 个特征都不相关时,就有:

Peter教你谈情说AI | 06朴素贝叶斯分类器

注意:此处的 Z 对应Peter教你谈情说AI | 06朴素贝叶斯分类器贝叶斯分类器就是计算出概率最大的那个分类,也就是求上面这个公式的最大值。

由于 Peter教你谈情说AI | 06朴素贝叶斯分类器 对于所有的类别都是相同的,可以省略,问题就变成了求

P(b1b2...bn|C)P(A)的最大值。


下面再通过两个例子,来看如何使用朴素贝叶斯分类器。





则 P(A|B)可以写为:

朴素贝叶斯分类器

例子1:

根据某社区网站的抽样统计,该站10000个账号中有89%为真实账号(设为C0),11%为虚假账号(设为C1)。

Peter教你谈情说AI | 06朴素贝叶斯分类器

下来,就要用统计资料判断一个账号的真实性。假定某一个账号有以下三个特征:

Peter教你谈情说AI | 06朴素贝叶斯分类器

请问该账号是真实账号还是虚假账号?方法是使用朴素贝叶斯分类器,计算下面这个计算式的值。

Peter教你谈情说AI | 06朴素贝叶斯分类器

虽然上面这些值可以从统计资料得到,但是这里有一个问题:F1和F2是连续变量,不适宜按照某个特定值计算概率。 一个技巧是将连续值变为离散值,计算区间的概率。比如将F1分解成[0, 0.05]、(0.05, 0.2)、[0.2, +∞]三个区间,然后计算每个区间的概率。在我们这个例子中,F1等于0.1,落在第二个区间,所以计算的时候,就使用第二个区间的发生概率。 根据统计资料,可得:

Peter教你谈情说AI | 06朴素贝叶斯分类器

因此:

Peter教你谈情说AI | 06朴素贝叶斯分类器

可以看到,虽然这个用户没有使用真实头像,但是他是真实账号的概率,比虚假账号高出30多倍,因此判断这个账号为真。


例子2:

下面是一组人类身体特征的统计资料。

Peter教你谈情说AI | 06朴素贝叶斯分类器

已知某人身高6英尺、体重130磅,脚掌8英寸,请问该人是男是女?根据朴素贝叶斯分类器,计算下面这个式子的值。

Peter教你谈情说AI | 06朴素贝叶斯分类器

这里的困难在于,由于身高、体重、脚掌都是连续变量,不能采用离散变量的方法计算概率。而且由于样本太少,所以也无法分成区间计算。怎么办?

这时,可以假设男性和女性的身高、体重、脚掌都是正态分布,通过样本计算出均值和方差,也就是得到高斯分布的密度函数。有了密度函数,就可以把值代入,算出某一点的密度函数的值。

我们知道,高斯分布又名正态分布(在二维空间内形成钟形曲线),每一个高斯分布由两个参数——均值和方差决定。

Peter教你谈情说AI | 06朴素贝叶斯分类器

比如,男性的身高是均值5.855、方差0.035的正态分布。所以,男性的身高为6英尺的概率的相对值等于1.5789(大于1并没有关系,因为这里是密度函数的值,只用来反映各个值的相对可能性)。

Peter教你谈情说AI | 06朴素贝叶斯分类器

有了这些数据以后,就可以计算性别的分类了

Peter教你谈情说AI | 06朴素贝叶斯分类器

可以看到,女性的概率比男性要高出将近10000倍,所以判断该人为女性。


工作流程

与多数的机器学习过程类似,分为准备过程,以确定特征值及分类为主,之后开始训练并生成分类器;最后则可以应用步骤二产生的分类器了。


【推荐阅读】






轻轻一扫  欢迎关注~

如果觉得好,请

转发

转发

转发

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《Peter教你谈情说AI | 06朴素贝叶斯分类器》的版权归原作者「人人都是极客」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注人人都是极客微信公众号

人人都是极客微信公众号:rrgeek

人人都是极客

手机扫描上方二维码即可关注人人都是极客微信公众号

人人都是极客最新文章

精品公众号随机推荐