学习
实践
活动
专区
工具
TVP
写文章
专栏首页算法channel机器学习:半朴素贝叶斯分类器

机器学习:半朴素贝叶斯分类器

主要推送关于对算法的思考以及应用的消息。培养思维能力,注重过程,挖掘背后的原理,刨根问底。本着严谨和准确的态度,目标是撰写实用和启发性的文章,欢迎您的关注。

01

回顾

最近,阐述了朴素贝叶斯的2个例子引出了朴素贝叶斯的分类原理,给出了苹果的三个特征通过朴素贝叶斯分类器预测了第11个苹果是好果Or不好果,预测时发现某个分类中某个属性值恰好在数据集中没有出现,此时直接会抹去其他属性值,这个是不合理的,因此又论述了如何用拉普拉斯修正来解决这个问题,具体参考:

机器学习:说说贝叶斯分类

朴素贝叶斯分类器:例子解释

朴素贝叶斯分类:拉普拉斯修正

昨天,建立在以上对朴素贝叶斯分类器理解和消化的基础上,在Jupyter Notebook中亲自实践和实现了《自动单词拼写纠正器》,里面带有详细的原理说明和实现 python源码,有需要的可以@我,这个还是非常有趣的,最近距离的体会机器学习带给我们的快乐和兴趣,欢迎阅读和交流: 机器学习:单词拼写纠正器python实现

02

放松:属性独立假设

朴素贝叶斯分类器的一个重要假定:分类对应的各个属性间是相互独立的,然而在现实应用中,这个往往难以做到,那怎么办呢?

很简单,适当考虑一部分属性间的相互依赖关系,这种放松后的分类称为半朴素贝叶斯分类,其中最常用的策略:假定每个属性仅依赖于其他最多一个属性,称其依赖的这个属性为其超父属性,这种关系称为:独依赖估计(ODE)。

因此,对某个样本x 的预测朴素贝叶斯公式就由如下:

修正为如下的半朴素贝叶斯分类器公式:

从上式中,可以看到类条件概率 P(xi | c) 修改为了 xi 依赖于分类c 和 一个依赖属性pai 。

03

半朴素贝叶斯例子解释

在阐述朴素贝叶斯分类器用到的数据集还是用到此处,数据集如下:

#

大小

颜色

形状

标签

1

青色

非规则

2

红色

非规则

3

红色

圆形

4

青色

圆形

5

青色

非规则

6

红色

圆形

7

青色

非规则

8

红色

非规则

9

青色

圆形

10

红色

圆形

测试集上要预测的某个样本如下:

#

大小

颜色

形状

标签

11

青色

圆形

?

采用拉普拉斯修正后的先验概率P(c)的计算公式:

基于类c和类外的依赖属性pai的条件概率计算公式如下:

属性的依赖关系定义如下:

  • 大小的依赖属性为:形状,且属性取值为大时依赖形状为圆形;
  • 颜色不存在依赖属性;
  • 形状的依赖属性为大小,且属性取值为圆形时依赖大小为大;

则先验概率 P(c) ,

P(c = 好果)= (4+1) / (10+2) = 5/12

P(c = 一般) = (6+1) / (10+2) = 7/12

带有依赖属性的类条件概率:

P(大小=大 | c=好果,形状=圆形) = (2+1)/(3+2) = 3/5

P(颜色=青色 | c=好果) = (0+1)/(4+2) = 1/6

P(形状=圆形 | c=好果,大小=大) = (2+1) / (3+2) = 3/5

P(大小=大 | c=一般,形状=圆形) = (1+1) /( 2+2) = 2/4

P(颜色=青色 | c=一般) = (5+1)/(6+2) = 6/8

P(形状=圆形 | c=一般,大小=大) = (1+1)/(3+2) = 2/5

因此:

P(c=好果) * P(大小=大 | c=好果,形状=圆形) * P(颜色=青色 | c=好果) * P(形状=圆形 | c=好果,大小=大)

= 5/12 * 3/5 * 1/6 * 3/5

= 0.025

P(c=一般) * P(大小=大 | c=一般,形状=圆形) * P(颜色=红色 | c=一般) * P(形状=圆形 | c=一般,大小=大)

= 7/12 * 2/4 * 6/8 * 2/5

= 0.0875

因此,测试集上要预测的这个样本和朴素贝叶斯分类器要预测的结果是相同的,都为一般的果子。

这种依赖属性选取算法称为超父ODE算法:SPODE。显然,这个算法是每个属性值只与其他唯一 一个有依赖关系。基于它之上,又提出另一种基于集成学习机制,更为强大的独依赖分类器,AODE,它的算法思想是怎么样的呢?

04

AODE算法

这个算法思路很简单,就是在SPODE算法的基础上在外面包一个循环吧,说的好听点就是尝试将每个属性作为超父属性来构建SPODE吧,请看下面的公式,是不是在SPODE外面包了一个循环,然后求它们的和作为当前预测样本的得分值啊:

上面的求和符号实质兑换为代码不就是一个for循环吗。

05

总结和展望

以上介绍了考虑属性间有依赖关系时的半朴素贝叶斯分类器。结合近几天的阐述,这些(半)朴素贝叶斯分类器,都有一个共同特点:假设训练样本所有属性变量的值都已被观测到,训练样本是完整的。

然后,现实生活中,有时候拿到的数据集缺少某个属性的观测值(这种变量称为隐变量),在这种存在“未观测”变量的情形下,是否仍能对模型参数进行估计呢?

比如,两箱苹果,其中从A箱中取到一个好苹果的概率大于从B箱中取得,如果有一堆苹果来自于A箱和B箱,但是不知道某个苹果来自于A箱还是B箱,进行了5组实验,每组抽取10个苹果,每组抽到的好苹果和一般苹果都记录到纸上,通过这些观测数据,能得出从A或B箱中取到一个好苹果的概率吗?

这个预测,无形中增加了一个隐变量:苹果出处这属性吧(取值:A箱或B箱)。在这种情况下,介绍一种常用的估计类似参数隐变量的利器:Expectation-Maximization 算法(期望最大算法)。EM算法正如它的名字那样每轮迭代经过两步:E步和M步,迭代,直至收敛。

文章分享自微信公众号:
算法channel

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:alg-flody
原始发表时间:2017-11-27
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 机器学习-朴素贝叶斯分类器

    使用贝叶斯定理,我们可以找到已知B发生,A发生的可能性。在这里,B是证据,A是假设。这里所做的假设是预测变量/特征是独立的。也就是说,一个特定功能的存在不会影响...

    XXXX-user
  • python机器学习库sklearn——朴素贝叶斯分类器[通俗易懂]

    分享一个朋友的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开

    全栈程序员站长
  • 机器学习 - 朴素贝叶斯分类器的意见和文本挖掘

    人们倾向于知道他人是如何看待他们和他们的业务的,不管是什么东西,不管是汽车,饭店等产品还是服务本身。如果你知道你的客户如何看待你,那么你可以保持或改善甚至改变你...

    登木望月
  • 机器学习算法的R语言实现:朴素贝叶斯分类器

    1、引子 朴素贝叶斯方法是一种使用先验概率去计算后验概率的方法,其中朴素的意思实际上指的是一个假设条件,后面在举例中说明。本人以为,纯粹的数学推导固然有其严密性...

    机器学习AI算法工程
  • 机器学习算法的R语言实现:朴素贝叶斯分类器

    1、引子 朴素贝叶斯方法是一种使用先验概率去计算后验概率的方法,其中 朴素 的意思实际上指的是一个假设条件,后面在举例中说明。本人以为,纯粹的数学推导固然有其...

    机器学习AI算法工程
  • 李航《统计学习方法》朴素贝叶斯分类器实现

    朴素贝叶斯认为所有特征都是独立的,然后得出一个样本出现的概率使其所有特征出现概率的联乘。

    Coggle数据科学
  • 机器学习 学习笔记(11) 贝叶斯分类器

    贝叶斯决策论是在概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记,

  • 《机器学习》笔记-贝叶斯分类器(7)

    作者:刘才权 编辑:陈人和 前 言 如今机器学习和深度学习如此火热,相信很多像我一样的普通程序猿或者还在大学校园中的同学,一定也想参与其中。不管是出于好奇,还...

    机器学习算法工程师
  • 【机器学习】朴素贝叶斯

    本文介绍了朴素贝叶斯模型,朴素贝叶斯(几乎所有的概率模型)的核心假设:特征之间的条件概率相互独立。以垃圾邮件分类问题为例,分析了朴素贝叶斯模型的两种应用场景:1...

    zenRRan
  • 机器学习|朴素贝叶斯

    数据山谷
  • 机器学习(五)—朴素贝叶斯

     最近一直在看机器学习相关的算法,今天我们学习一种基于概率论的分类算法—朴素贝叶斯。本文在对朴素贝叶斯进行简单介绍之后,通过Python编程加以实现。

    oYabea
  • 机器学习 | 朴素贝叶斯理论

    朴素贝叶斯法是一种直接衡量标签和特征之间的概率关系的有监督学习算法,是一种专注分类的算法。

    数据STUDIO
  • 机器学习的未来:半监督学习

    监督学习是人工智能领域的第一种学习类型。从它的概念开始,无数的算法,从简单的逻辑回归到大规模的神经网络,都已经被研究用来提高精确度和预测能力。

    统计学家
  • 《机器学习》笔记-半监督学习(13)

    如今机器学习和深度学习如此火热,相信很多像我一样的普通程序猿或者还在大学校园中的同学,一定也想参与其中。不管是出于好奇,还是自身充电,跟上潮流,我觉得都值得试一...

    机器学习算法工程师
  • 《机器学习》-- 第七章 朴素贝叶斯

    贝叶斯分类器是一种概率框架下的统计学习分类器,对分类任务而言,假设在相关概率都已知的情况下,贝叶斯分类器考虑如何基于这些概率为样本判定最优的类标。

    fireWang
  • 机器学习实战之朴素贝叶斯

    机器学习实战之朴素贝叶斯 1.1、简介 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。已知某条件概率,如何得到两个事件交换后...

    企鹅号小编
  • 机器学习实战之朴素贝叶斯

    在学习朴素贝叶斯分类模型之前,我们回顾一下之前学习的KNN和决策树,读者本人的总结:不同的机器学习方法有着不同的假设和理论进行支撑,而这些假设和理论在很大程度上...

    罗罗攀
  • 机器学习实战之朴素贝叶斯

    罗罗攀
  • 机器学习–朴素贝叶斯模型原理

    朴素贝叶斯中的朴素是指特征条件独立假设, 贝叶斯是指贝叶斯定理, 我们从贝叶斯定理开始说起吧.

    全栈程序员站长

扫码关注腾讯云开发者

领取腾讯云代金券