文档章节

朴素贝叶斯(一)

 冷血狂魔
发布于 2017/05/05 21:56
字数 723
阅读 69
收藏 0

一、概述与实例

    贝叶斯定理被应用于各种各样的场景下,例如疾病预测、垃圾邮件分类、新闻分类、自动驾驶……

    当然我不是搞数学的,我这里只是就应用的角度来谈谈朴素贝叶斯的使用,朴素贝叶斯中一个重要的假设:各个因素相互独立。

    贝叶斯定理就一句话:P(B|A)=P(A|B)P(B)/P(A),它描述了在A条件发生的情况下B发生的概率,或许直接看公式有点懵圈,下面请看这样一个例子:

有一组统计数据是描述小明上班是否会迟到:

天晴

交通良好

不迟到

下雨

交通良好

不迟到

下雨

交通良好

迟到

天晴

交通堵塞

迟到

下雨

交通堵塞

不迟到

今天,下雨、交通堵塞,我们来预测一下小明上班是否会迟到。这里我们假设各个因素之间相互独立。

1、在下雨、交通堵塞的情况下迟到的概率:

P(迟到|下雨×交通堵塞)=P(下雨×交通堵塞|迟到)×P(迟到)/P(下雨×交通堵塞)

=P(下雨|迟到)×p(交通堵塞|迟到)×P(迟到)/P(下雨)p(交通堵塞)

=(1/2×1/2×2/5)/(3/5×2/5)=5/12

2、在下雨、交通堵塞的情况下不迟到的概率:

P(不迟到|下雨×交通堵塞)=P(下雨×交通堵塞|不迟到)×P(不迟到)/P(下雨×交通堵塞)

=P(下雨|不迟到)×p(交通堵塞|不迟到)×P(不迟到)/P(下雨)p(交通堵塞)

=(2/3×1/3×3/5)/(3/5×2/5)=5/9

那么我基于这组数据,更倾向于小明今天不会迟到。

如果样本足够大,那么结果更趋近于真相。这就是朴素贝叶斯。

二、简化

1、假设一组数据有因子集合{P1,P2,……Pn}可以确定该数据属于分类C,那么

p(C|P1P2……Pn)=p(P1P2...Pn|C)P(C) / p(P1P1...Pn)

2、由于p(P1P1...Pn)对于所有类别C都是相同的,那么就等价于求

p(P1P1...Pn|C)P(C) 的最大值

3、假设条件相互独立

p(P1P1...Pn|C)P(C) =p(P1|C)*p(P2|C)*p(Pn|C)*p(C)

4、最终问题简化为求p(P1|C)*p(P2|C)*p(Pn|C)*p(C)的最大值

三、问题

    问题简化之后,单机版的朴素贝叶斯很好实现,但是处理大规模数据,还是显得心有余而力不足。

    大数据技术发展,给了我们运算全量数据的能力,那么基于Hadoop MapReduce模型的朴素贝叶斯算法该如何实现呢?请关注下一篇《朴素贝叶斯(二)》。

快乐源于分享。

   此博客乃作者原创, 转载请注明出处   

© 著作权归作者所有

上一篇: 将博客搬至CSDN
下一篇: TCP粘包拆包二
粉丝 107
博文 47
码字总数 56986
作品 0
杭州
程序员
私信 提问
统计学习方法 | 朴素贝叶斯法

01 分类方法 之前我们学习了一种分类方法——K近邻法(KNN),今天我们再学习一种更常用的分类方法 朴素贝叶斯法 这里,我们先区分一下“分类”和“聚类” 分类的目的是学会一个分类函数或分类...

邓莎
2018/05/23
0
0
Python · 朴素贝叶斯(三)· GaussianNB

(这里是本章会用到的 GitHub 地址) (话说居然一个月没写了啊……)(然而你一个月没写之后写的东西还这么水对得起观众老爷吗) (刚发现算法叙述居然在这篇文章中说过了…… ( σ'ω')σ)...

射命丸咲
2017/04/20
0
0
【火炉炼AI】机器学习010-用朴素贝叶斯分类器解决多分类问题

【火炉炼AI】机器学习010-用朴素贝叶斯分类器解决多分类问题 (本文所使用的Python库和版本号: Python 3.5, Numpy 1.14, scikit-learn 0.19, matplotlib 2.2 ) 前面讲到了使用逻辑回归分类器解...

炼丹老顽童
2018/08/06
0
0
MADlib——基于SQL的数据挖掘解决方案(22)——分类之朴素贝叶斯

一、贝叶斯分类简介 1. 贝叶斯分类原理 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。贝叶斯分类是一种利用概率统计知识进行分类的算法,其分类原理...

wzy0623
2018/03/06
0
0
中文新闻分类,逻辑回归大战朴素贝叶斯

1 问题背景 我们有一堆新闻文本数据,包含“新闻类别”、“新闻内容”两列,希望建立一个模型,来预测新闻内容属于哪个类别。 这是一个文本分类问题,朴素贝叶斯和逻辑回归可以说是文本分类最...

Littletree_Zou
02/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 开发语言和语言开发的能一样么

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌:#今日歌曲推荐# 分享The Score的单曲《Revolution》 《Revolution》- The Score 手机党少年们想听歌,请使劲儿戳(这里) @批判派...

小小编辑
今天
1K
14
oracle ORA-39700: database must be opened with UPGRADE option

ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 进程 ID: 3650 会话 ID: 29......

Tank_shu
今天
3
0
分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
聊聊DubboDefaultPropertiesEnvironmentPostProcessor

序 本文主要研究一下DubboDefaultPropertiesEnvironmentPostProcessor DubboDefaultPropertiesEnvironmentPostProcessor dubbo-spring-boot-project-2.7.3/dubbo-spring-boot-compatible/au......

go4it
昨天
2
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部