今天,我们继续我们的笔记。

作者在第三章继续举了一个例子。火车头问题(读者在此可能会觉得这个问题没有意义,但相信随着深入阅读,这个问题会被解答)。

这个举例恰到好处,能够让我深入理解到底应该如何假设,也能更好的诠释2.5章节中的封装框架。

回顾一下曲奇饼问题中,我们的假设是什么?(不要忘记,我们的假设决定先验概率)

假设A:香草味的饼来自筐1,先验概率1/2。

假设B:香草味的饼来自筐2,先验概率1/2。

再来看看火车头问题中我们的假设:

假设1:公司有1个火车头,先验概率1/N。

假设2:公司有2个火车头,先验概率1/N。

......

假设60:公司有60个火车头,先验概率1/N。

......

假设1000:公司有1000个火车头,先验概率1/N。

......

理论上,我们应该继续我们的假设直到无线多个火车头。但是这并不利于我们进行计算。就目前来将,我们只能假设“从1到1000个等可能的任何值”。大家可以直接将每一个可能性(现在是1000个)看作是一个对应的“筐”。第500个可能性对应第“500号筐”,而这个框中有500个火车头,那么我们看到第60号火车头的概率(也就是似然度)就是1/500。

接下来,我们进一步简化:我们看到的是2号火车头,我们假设“从1到3个等可能的任何值”。这样,我们的先验概率、似然度、后验概率就很好得出了:

P(H)    P(D|H)    P(H)P(D|H)    P(H|D)

A     1/3        0              0                 0

B     1/3        1/2           1/6              3/5

C     1/3        1/3           1/9              2/5

这样,想必大家能更容易理解,在火车头问题中如何应用贝叶斯定理。

我们再回头看一下,作者为我们提供的贝叶斯框架,其主要为3个函数:

__init__()

Update()

Likelihood()

__init__() 函数直接决定了我们的假设方式及先验分布,我们看到在之前的例子中,作者一直没有重写该函数,原因正是因为我们的假设内容及先验分布的类型一直都没变过,一直是等可能的类型。

Likelihood() 函数实际上帮我们取到某种假设的似然度,注意Likelihood就是英文中的似然度。

Update() 方法调用到先验概率和似然度,然后执行 Pmf 的 Mult 方法。实际上就是 “更新基于该数据的每个假设”(原译者),更合适地应该说“基于某一个数据,更新或者说创建每个假设的后验概率”

当然,火车头问题并没有就此结束。作者提到,当我们变更假设的值的范围时,我们会得到差异非常大的结果。这主要是因为我们的假设出了一小点问题,到不因为范围的上限,而是因为先验分布并不是等可能的,而应该基于某种模型。原书提供了一种,为罗伯特的幂率模型:PMF(x)∝ (1/x)的α次方。当然实际上我们进一步简化,另α = 1 。这样,在我们了Likelihood()方法及Update()方法后,我们就能够得到这个最终的类了。

[Thinkbayes]贝叶斯思维读书笔记-2-火车头问题的更多相关文章

  1. [Thinkbayes]贝叶斯思维读书笔记-1-贝叶斯定理

    使用贝叶斯定理,目前来看最重要的一点在于假设.就是未知事件已知化,同时也要注意假设的全程性,不能从中开始新的假设,这种假设往往是不全面的. 我自己找到的假设的方法有两种,一种是命名,一种是时序.全程性 ...

  2. 统计学习:《贝叶斯思维统计建模的Python学习法》中文PDF+英文PDF+代码

    用数学工具解决实际问题仅有的要求可能就是懂一点概率知识和程序设计.而贝叶斯方法是一种常见的利用概率学知识去解决不确定性问题的数学方法,对于一个计算机专业的人士,应当熟悉其应用在诸如机器翻译,语音识别, ...

  3. R语言︱贝叶斯网络语言实现及与朴素贝叶斯区别(笔记)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 一.贝叶斯网络与朴素贝叶斯的区别 朴素贝叶斯的 ...

  4. 贝叶斯推断 && 概率编程初探

    1. 写在之前的话 0x1:贝叶斯推断的思想 我们从一个例子开始我们本文的讨论.小明是一个编程老手,但是依然坚信bug仍有可能在代码中存在.于是,在实现了一段特别难的算法之后,他开始决定先来一个简单的 ...

  5. <机器学习实战>读书笔记--朴素贝叶斯

    1.朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法, 最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model, ...

  6. 机器学习实战笔记(Python实现)-03-朴素贝叶斯

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

  7. 机器学习&数据挖掘笔记_18(PGM练习二:贝叶斯网络在遗传图谱在的应用)

    前言: 这是coursera课程:Probabilistic Graphical Models上的第二个实验,主要是用贝叶斯网络对基因遗传问题进行一些计算.具体实验内容可参考实验指导教材:bayes ...

  8. 《NoSQL精粹》思维导图读书笔记

    <NoSQL精粹>思维导图读书笔记 各主题笔记 这本书短小精悍,虽不能解答所有NoSQL疑问,但在读书过程中会抛给你不少未曾想过的问题,给人以更深入的思考: 这里对每一个主题分别做了笔记: ...

  9. [置顶] 生成学习算法、高斯判别分析、朴素贝叶斯、Laplace平滑——斯坦福ML公开课笔记5

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9285001 该系列笔记1-5pdf下载请猛击这里. 本篇博客为斯坦福ML公开 ...

随机推荐

  1. intellij idea 13&14 插件推荐及快速上手建议 (已更新!)

    原文:intellij idea 13&14 插件推荐及快速上手建议 (已更新!) 早些年 在外企的时候,公司用的是intellij idea ,当时也是从eclipse.MyEclipse转 ...

  2. 前台框架的选择 EasyUI、DWZ、ligerui

    EasyUI1.3.1+MVC4.0+EF5.0 番外篇 关于前台框架的选择 EasyUI.DWZ.ligerui 昨天发了EasyUI1.3.1+MVC4.0+EF5.0实战之一 开篇及布局控件介绍 ...

  3. ubuntu下的apache的虚拟主机的配置

    ubuntu下的虚拟主机的配置相对window下的虚拟主机配置有些许不同. 对于要新建的虚拟主机,我们可以有如下几个步骤: 1.在/etc/apache2/sites-available/目录下新建一 ...

  4. VMWare 11安装操作系统 - 初学者系列 - 学习者系列文章

    在2010年的时候,我写过一篇关于VMWare的安装操作系统的博文.但是今天在QQ群里有人问起VMWare安装操作系统的问题,虽然回答了,但是回头看了下当时那篇博文,决定重新写一文. 首先要获取VMW ...

  5. WebIM(3)----性能测试

    WebIM系列文章 在一步一步打造WebIM(1)和(2)中,已经讨论了如何开发一个WebIM,并且使用缓存来提高WebIM的性能,本文将编写一个程序模拟大量用户登录来对WebIM进行性能测试. 1. ...

  6. nginx+lua+redis高并发应用建设

    ngx_lua将lua嵌nginx,让nginx运行lua脚本.高并发,非堵塞过程中的各种请求. url要求nginxserver,然后lua查询redis,返回json数据. 一.安装lua-ngi ...

  7. 【转】Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9671609 记得在很早之前,我写了一篇关于Android滑动菜单的文章,其中有一个 ...

  8. 使用GDB调试器(一)

    使用GDB调试器 GDB概要---- GDB是GNU开源组织公布的一个强大的UNIX下的程序调试工具.也许,各位比較喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但假设你是在UNIX平台下做软 ...

  9. 枚举for/in

    for/in循环可以遍历对象中所有可以枚举的属性(包括自有属性和继承属性).对象继承的内置方法不能枚举,凡是在代码中给对象自己或者继承的类添加的属性方法都是可枚举的,但是对象自有的内置属性可不可以枚举 ...

  10. JavaScript实例技巧精选(11)—计算器实例3

    >>点击这里下载完整html源码<< 界面如下 将以下代码插入<body></body>中 <FORM NAME="Calc" ...