第6-1节概率及朴素贝叶斯——朴素贝叶斯|写给程序员的数据挖掘实践指南-学习笔记

文章原创,最近更新: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近邻方法的优缺点

  • 利用近邻算法,很难量化分类的置信度。而基于概率的分类算法——贝叶斯算法却不仅能够分类而且能够给出分类的概率,比如这个运动员有80%的概率是一名篮球运动员,这个病人接下来的5年内有40%的概率会得糖尿病,未来24小时Las Cruces下雨的概率为10%,等等。

  • 近邻方法被称为惰性学习器(lazy learner)。之所以这样叫是因为当给出训练数据集时,这些分类器只是将它们保存或者说记录下来。每次对实例进行分类时,这些分类器都会遍历整个训练数据集。如果训练数据包含100000首歌曲的话,这些分类器会在每次对实例分类时都遍历所有100000首歌曲。

  • 贝叶斯方法称为勤快学习器(eager learner)。给定训练集时,这些分类器会立即分析数据并构建模型。当要对某个实例进行分类时,它会使用训练得到的内部模型。勤快学习器的分类速度往往比惰性分类器的分类速度更快。

    • 贝叶斯方法能够进行概率分类,并且是勤快学习器,这两点是贝叶斯方法的优点

4.2贝叶斯方法的理解

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



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

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

案例1

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

第6-1节概率及朴素贝叶斯——朴素贝叶斯|写给程序员的数据挖掘实践指南-学习笔记_第1张图片

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

在总共10个用户中有5个用户使用iPhone,因此有:

随机选择的一个使用Mac笔记本电脑的人使用iPhone的概率是多少?

  • 首先,有4个人同时使用Mac和iPhone,于是:
  • 而随机选择一个人使用Mac的概率为:
  • 因此,在给定使用Mac的情况下使用iPhone的概率为:

这就是后验概率的形式化定义。有时在具体实现时,可以只使用原始的计数值进行计算:

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

相关术语

  • P(h)即某个假设h为真的概率称为h的先验概率(prior probability)。
    在有任何证据之前,一个人拥有Mac的概率是0.6(这里的证据可能是知道这个人也有一部iPhone)。
  • P(h|d)称为h的后验概率(posterior probability),即观察到数据d之后h的概率。
    例如,在观察到某个人拥有iPhone之后,这个人拥有Mac的概率是多少?该概率也称为条件概率(conditional probability)。
案例2

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

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

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


第6-1节概率及朴素贝叶斯——朴素贝叶斯|写给程序员的数据挖掘实践指南-学习笔记_第2张图片
邮政编码是美国所使用的邮政编码

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

没有购买绿茶的实例数目为5,其中2人居住地的邮政编码为88005,于是有:

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

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

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

购买绿茶的记录数目为5,其中只有1条记录的邮政编码为88001,因此

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

有5条记录没有购买绿茶,其中2条的邮政编码为88001,因此

4.4贝叶斯定理

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

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

  • 在给定证据的情况下,判定一个人从事的运动到底是体操、马拉松还是篮球;
  • 在给定证据的情况下,判断顾客是否会购买绿茶。为在多个选择中进行决策,我们计算每种假设的概率。

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

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

  • 该顾客会购买绿茶,计算P(购买绿茶|88005);
  • 该顾客不会购买绿茶,计算P(非购买绿茶|88005)。

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

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

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

第6-1节概率及朴素贝叶斯——朴素贝叶斯|写给程序员的数据挖掘实践指南-学习笔记_第3张图片

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

可以将上述计算最大后验概率的描述转换为如下公式:

其中,H是所有假设的集合。因此,h∈H意味着“对H中的每条假设”。整个公式意味着“对假设集合中的每条假设计算P(h|D)并从中选出概率最大的那条假设”。利用贝叶斯定律可以将上述公式转

你可能会注意到,对于所有的假设而言,分母中的P(D)都是相等的。因此,它们与假设是相互独立的。如果某条特定的假设在上述公式下具有最高的概率,那么再将它除以P(D)仍然最大。如果我们的目标是计算具有最大概率假设的话,就可以对上述计算过程进行简化,从而计算:

案例1
考虑在某个医疗领域中想确定病人是否患有某种特定的癌症,可以进行一个简单的血液测试(或者说血检)来帮助决策。该测试是一个二值测试,其返回的结果为POS(阳性)或NEG(阴性)。当患者患有该病时,测试返回正确的阳性的概率为98%;当患者未患此病时,测试返回正确的阴性的概率为97%。
我们的假设为:

  • 病人患有该癌症
  • 病人未患该癌症
第6-1节概率及朴素贝叶斯——朴素贝叶斯|写给程序员的数据挖掘实践指南-学习笔记_第4张图片

练习1:

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

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

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

已知条件如下:





下面寻找如下最大后验概率:


我们选择将病人分到未得病这一类中。

如果想知道精确的概率值的话,可以将这些值进行归一化以便所有概率的和为1:

于是,Ann有21%的患病概率。

你可能感兴趣的:(第6-1节概率及朴素贝叶斯——朴素贝叶斯|写给程序员的数据挖掘实践指南-学习笔记)