呆鸟的Python数据分析写给程序员的数据挖掘实践指南

第6-1节概率及朴素贝叶斯——朴素贝叶斯|写给程序员的数据挖掘实

2018-08-25  本文已影响16人  努力奋斗的durian

文章原创,最近更新:2018-08-25

1.关于本书
2.关于作者
3.内容简介
4.主要内容

引言:网上找资料觉得这本书挺通俗易懂的,刚好可以跟《机器学习实战》相关章节结合一起学习。

1.关于本书

写给程序员的数据挖掘实践指南:豆瓣评分:7.4分
作者: [美] Ron Zacharski
出版社: 人民邮电出版社
原作名: A Programmer's Guide to Data Mining
译者: 王斌
出版年: 2015-10-24

2.关于作者

Ron Zacharski是一名软件开发工程师,曾在威斯康辛大学获美术学士学位,之后还在明尼苏达大学获得了计算机科学博士学位。博士后期间,他在爱丁堡大学研究语言学。正是基于广博的学识,他不仅在新墨西哥州立大学的计算研究实验室工作,期间还接触过自然语言处理相关的项目,而该实验室曾被《连线》杂志评为机器翻译研究领域翘楚。除此之外,他还曾教授计算机科学、语言学、音乐等课程,是一名博学多才的科技达人。

3.内容简介

本书是写给程序员的一本数据挖掘指南,可以帮助读者动手实践数据挖掘、集体智慧并构建推荐系统。全书共8章,介绍了数据挖掘的基本知识和理论、协同过滤、内容过滤及分类、算法评估、朴素贝叶斯、非结构化文本分类以及聚类等内容。本书采用“在实践中学习”的方式,用生动的图示、大量的表格、简明的公式、实用的Python代码示例,阐释数据挖掘的知识和技能。每章还给出了习题和练习,帮助读者巩固所学的知识。

4.主要内容

4.1贝叶斯方法与k近邻方法的优缺点

4.2贝叶斯方法的理解

朴素贝叶斯的具体公式如下:



概率记为P(A|B),即给定某些数据B条件下假设A的概率。例如:P(女|进入Frank Lloyd Wright学院)=0.86

上述概率读成“给定为Frank Lloyd Wright学院学生的条件下该学生为女性的概率是0.86”。

案例1

下边表格中我列出了一些人及其他们的笔记本电脑和手机的类型:


问题:
从该表格中随机选择一个人使用iPhone的概率是多少

在总共10个用户中有5个用户使用iPhone,因此有:
P(iPhone)=\frac{5}{10}=0.5
随机选择的一个使用Mac笔记本电脑的人使用iPhone的概率是多少?
P(iPhone|mac)=\frac{P(iPhone\cap mac)}{P(mac)}

这就是后验概率的形式化定义。有时在具体实现时,可以只使用原始的计数值进行计算:
P(iPhone|mac)=\frac{同时使用mac和iPhone的人数}{使用mac的人数}
P(iPhone|mac)=\frac{4}{6}=0.667

习题练习:
拥有iPone的人拥有mac的概率,即P(mac|iPhone)是多少?

P(mac|iPhone)=\frac{P(iPhone\cap mac)}{P(iPhone)}=\frac{0.4}{0.5}=0.8

相关术语

案例2

假设购物车软件想确定是否要向你显示一个日本绿茶的定向广告,而它只会在你想买茶时将该广告推送给你。

购物车系统从其他购物者身上积累了一个小规模的数据集(如下所示)。
P(D)为观察到某训练数据的概率。例如,我们知道邮政编码为88005的概率为5/10或者说0.5。
P(88005)=0.5

P(D|h)为给定假设条件下得到某个数据值的概率。例如,当知道用户购买绿茶条件下邮政编码为88005的概率,即P(88005 | 绿茶)。


邮政编码是美国所使用的邮政编码

习题练习1:
用户不购买绿茶的情况下邮政编码为88005的概率是多少?

没有购买绿茶的实例数目为5,其中2人居住地的邮政编码为88005,于是有:
P(88005|非绿茶)=\frac{2}{5}=0.4

习题练习2:
在不知道其他信息的条件下,某个人的邮政编码为88001的概率是多少?

数据库中有10条记录,其中只有3条记录的邮政编码为88001,因此P(88001)=0.3。

习题练习3:
如果知道某个人购买了绿茶,那么他居住的地方邮政编码为88001的概率是多少?

购买绿茶的记录数目为5,其中只有1条记录的邮政编码为88001,因此
P(88005|绿茶)=\frac{1}{5}=0.2

习题练习4:
如果知道某个人没有购买绿茶,那么他居住的地方邮政编码为88001的概率是多少?

有5条记录没有购买绿茶,其中2条的邮政编码为88001,因此
P(88005|非绿茶)=\frac{2}{5}=0.4

4.4贝叶斯定理

贝叶斯定理(Bayes Theorem)刻画了P(h)、P(h|D)、P(D)和P(D|h)之间的关系:
P(h|D)=\frac{P(D|h)P(h)}{P(D)}

贝叶斯定理是所有贝叶斯方法的基础。在数据挖掘当中我们常常使用该定律在多个可能的选择中做出决策:

在智能购物车系统中,只有认为顾客可能购买绿茶时才会将绿茶的广告显示给用户。我们知道顾客居住地的邮政编码为88005。

有两个假设需要进行对比:

我们会从上述假设中选择概率最高的那个!

因此,如果在P(购买绿茶 | 88005)=0.6且P(非购买绿茶 | 88005)=0.4的情况下,该顾客更有可能购买绿茶,因此我们将广告展示给他。

在分类任务中有多个可能的假设:h1,h2,…,hn。这些假设是我们任务中的多个类别(比如,篮球运动员、马拉松运动员、体操运动员,或者会得糖尿病、不会得糖尿病)。


一旦计算出所有的概率,我们会选择其中概率最大的那条假设。该假设称为最大后验假设(the maximum a posteriori hypothesis)或记为

练习1:

假设Ann去看医生,她进行了血液测试来检查是否患癌症,测试结果为阳性。

这看起来对Ann来说并不乐观,因为毕竟测试的精确率为98%(特别地,如果患病返回阳性的可能性为98%)。

请使用贝叶斯定理确定Ann得病还是没得病的可能性大。

已知条件如下:
P(cancer)=0.008
P(非cancer)=0.992
P(pos|cancer)=0.98
P(pos|非cancer)=0.03
P(NEG|cancer)=0.02
P(NEG|非cancer)=0.97

下面寻找如下最大后验概率:
P(pos|cancer)P(cancer)=0.98*(0.008)=0.0078
P(pos|非cancer)P(非cancer)=0.03*(0.992)=0.0298
我们选择h_{MAP}将病人分到未得病这一类中。

如果想知道精确的概率值的话,可以将这些值进行归一化以便所有概率的和为1:
P(cancer|pos)=\frac{0.0078}{0.0078+0.0298}=0.21
于是,Ann有21%的患病概率。

上一篇 下一篇

猜你喜欢

热点阅读