基本信息
编辑推荐
畅销书《程序员的数学》第2弹!
机器学习、数据挖掘、模式识别必备基础知识
从入门到应用,结合大量实例和263张图表
1. 图文直观
穿插大量有趣的实例和263张图表
2. 通俗易懂
借助高中数学知识解释各类概率统计问题
3. 角度新颖
独特的编排思路,巧妙阐述了概率论与统计学的基本理论
4. 内容全面
从入门到应用,系统讲解概率统计的方方面面
内容简介
作译者
数理工程学博士,对机器学习兴趣浓厚。喜欢Ruby,热爱Scheme。被Common Lisp吸引,正在潜心研究。
堀玄(作者)
数理工程学博士,主要从事脑科学与信号处理领域的研究。喜欢Ruby、JavaScript、PostScript等语言。正在研究基于统计学理论的语言处理。
陈筱烟(译者)
毕业于复旦大学计算机科学与技术系。从大学时期开始接触Java、JavaScript程序开发,目前对Web应用及智能手机应用开发很感兴趣。译作有《JavaScript编程全解》《App,这样设计才好卖》《两周自制脚本语言》等。
目录
第1章 概率的定义 3
1.1 概率的数学定义 3
1.2 三扇门(蒙提霍尔问题) ——飞艇视角 4
1.2.1 蒙提霍尔问题 5
1.2.2 正确答案与常见错误 6
1.2.3 以飞艇视角表述 6
1.3 三元组(Ω, F, P) ——上帝视角 9
1.4 随机变量 13
1.5 概率分布 17
1.6 适于实际使用的简记方式 19
1.6.1 随机变量的表示方法 19
1.6.2 概率的表示方法 20
1.7 Ω是幕后角色 21
1.7.1 不必在意Ω究竟是什么 21
1.7.2 Ω的习惯处理方式 22
1.7.3 不含Ω(不含上帝视角)的概率论 23
1.8 一些注意事项 23
1.8.1 想做什么 23
1.8.2 因为是面积…… 24
译者序
话虽如此,充满了大量概念与公式的概率与统计理论并非总是轻松有趣。概率论中既有简单明了的结论,也有与直觉相违的原理。只有准确地理解并掌握所有这些,才能真正在解决实际问题时灵活运用它们。幸运的是,这本《程序员的数学2:概率统计》另辟蹊径,借助不同于传统数学教材的独特编排思路,将概率泛化为面积与体积,强调随机变量的函数属性,深入浅出,巧妙地阐述了概率论与统计学的基本理论。全书穿插了大量形象有趣的实例,并辅以难度恰当的练习题,使没有经过大学数学系课程专业训练的读者也能理解与掌握概率与统计的精髓。
既然题为"程序员的数学",本书自然也专门介绍了一些与计算机科学相关的主题。本书涵盖了随机数理论、贝叶斯公式、马尔可夫链、信息熵等计算机科学专业课程中涉及的知识点,不但能够作为相关课程教材的补充,还能启发读者理解甚至设计相关的计算机算法,解决与概率统计相关的计算问题。本书的习题量不大,但都很典型,是检测相关知识点理解程度的理想材料。为了深入掌握本书内容,建议读者准备纸笔,随时通过笔头推算与演练,必能获得更好的学习效果。
数学是一门严谨的学科。翻译以数学为主题的书籍,不仅需要准确地理解原文,将其转换为恰达的中文,更重要的是严格精确地表述各条数学表达式的含义。中日数学表述体系间存在的细微差异无形中为此增加了难度,遑论国内数学教材对部分名词术语的翻译尚未达成统一,一字一句,都必须推敲琢磨。原则上,本书选择了当前学界较为流行的中文术语与公式表述方式,关键的公式与理论也经过了审校与确认。然限于水平,谬误之处在所难免,敬请广大读者给予批评与斧正。
本书能顺利完稿,离不开许多人的帮助与支持。家人的理解与关心,使自己能够始终安心地翻译。当我在生活与工作中遇到困难时,好友的支持帮助我攻克了一个个难关。最后还要感谢图灵公司的编辑提出了大量有价值的建议与意见,帮助本书顺利完成并最终问世。最后,希望对概率统计有兴趣的读者们都能从本书中获益。
陈筱烟
2015年6月于上海
前言
本书的编写目标
本书的目标读者是那些希望在自己感兴趣的领域中运用概率统计知识,但并不打算成为数学专业人士的人。本书名称沿用笔者的另一本书《程序员的数学3:线性代数》,但内容更加普适而通用。
说起概率论与统计理论,很多人都会对此抱有一些负面印象:计算公式复杂,检验类型繁多,辛苦学习很久后却发现真正对工作有帮助的其实是那些电子表格软件。不少人在运用统计理论时态度也很消极,他们只是为了让别人相信自己的结论客观合理而被迫使用那些繁琐的处理。
然而概率统计理论并非没有价值。事实上,近年来为了更好地处理数据,人们开始在各个学科中积极应用概率统计理论。数据挖掘、垃圾邮件自动筛选、文档的自动分类与类似文件搜索、非法使用的鉴别(例如根据信用卡消费历史得出持卡人的消费模式,以检测非正常消费行为,或监视网络流量识别可疑的访问模式等)、语音识别与图像识别、通信工程(例如信号清晰的高音质通话技术)、基因分析、金融工程中的资产组合分析、受生物学启发得到的高效信息处理方式(神经网络、遗传算法等)以及基于蒙特卡罗模拟的循证式日程规划等各领域中都活跃着概率统计理论的身影。
为了了解这些技术,我们必须掌握一些概率统计基础知识。然而,目前面向非理科背景读者的教材少之又少,他们往往不知道应该怎样学习概率统计知识。概率论的专业教材需要一定的数学功底才能阅读,普通读者可能难以理解;而轻松易懂的入门书又常常不成体系,或是无法提供足够的信息。如果要应用概率统计理论,我们需要掌握更多的基础知识。例如,在实际应用中我们常会遇到多个事件同时发生的情况,如何才能胸有成竹地处理这类问题,而不是仅凭直觉或模糊的概念妄加猜测呢?为此,除了了解基本的计算步骤,我们还需要深刻理解以下两条概念。
概率是面积与体积的泛化
随机变量是一种以变量为名的函数
不了解这方面的读者可能难以理解这两句话,不过它们已经成为现代概率论的基础。另一方面,与统计相关的参考书通常会罗列各类分布与检验方法。可惜这种编排方式难以帮助我们将概率统计理论应用至上述当前热门的领域。然而,直接阅读专门介绍垃圾邮件分类的技术书也并非良策。换个角度讲,我们不可能仅靠从应用中学到的知识来改进已有的应用方式。如果基础知识不足,在实际应用中就不能深入理解问题,从而无法触及问题的本质。何况这些技术至今仍在不断发展,只学习一些阶段性的未成熟的技术并没有太大的价值。相比研究这些具体的检验方法与应用技术,我们更应该首先强化相关的基础知识,以应对(包括当前方式在内的)更广泛的应用情景。
如果读者已经具备了一定的数学基础(不但能够理解数学表达式,还能领会那些抽象而巧妙的描述方式),教材的选择就会轻松很多。注重学习效率的教材、基础知识详细的教材、讲解生动有趣的教材,不一而足,大家可随意挑选。然而,由于存在这一门槛,普通读者缺乏合适的教材,于是能够掌握稍微系统一点的概率统计知识的人就一下子少了很多。为此,本书在编写时考虑了以下三个原则。
精选了大量非数学专业读者也应当掌握的知识点
内容的深度与大学非数学系学生的学习能力相符
知识的讲解力求详细具体
因此,与传统教材相比,本书的着力点与讲解思路都较为独特。尽管本书面向初学者,却保持了一定的深度。虽然前半部分花了较长篇幅详解条件概率的概念,但省略了各种类型的分布,也没有具体介绍各类计算技巧及特征函数等内容。这是权衡了各个知识点的重要程度之后做出的决定。此外,有些部分的讲解看似冗长,实则语言明晰,非常易于理解。
在讲解各类估计与检验方式等统计学核心知识点时,本书也下了一番功夫。本书希望读者不仅能了解它们的用法,还能理解其背后的原理,因此详细介绍了相关的基础概念与思维方式。上文提到过,本书并不打算罗列所有的统计方法(尤其是数据的采集方式与区间估计等内容)。如果读者想要学习各种具体的估计与检验方法,请参考专门的统计学教材。本书将着重说明这些方法背后的理论依据,解释这些方法背后共通的原理。
0.1在阅读本书前,需要预先掌握哪些数学知识A? 需要具备高中理科级别的数学知识(包括向量、微积分等的概念与基本计算能力)? 偶尔会用到大学级别的数学知识(主要是多元微积分),不过本书会为不具备这方面知识的读者提供必要的解释? 不会使用大学数学系级别的知识(主要是测度论)。如果讲解时无法避免,本书将明确提示,并给出易于理解的说明,帮助读者建立直观印象此外,第5 章与8.1 节需要用到一些大学程度的线性代数知识(例如,需要通过正交矩阵将对称矩阵对角化)。如果读者之前不了解线性代数理论的应用价值,也许会惊叹它的巨大威力。
最后,附录A简单总结了求和符号、指数与对数的一些基础知识,读者如有需要可适当参考。
A 该部分在正文中称为"问答专栏"。--译者注
0.2为什么要在写线性代数教材的同时再写一本概率统计教材
撰写这两本教材都是因为该学科的初学者与专家之间存在人才断层现象。在这两个领域中,一些有经验的人能够轻松解决的问题,初学者却常常感到过于复杂。产生这一问题的根本原因在于,无论是矩阵还是概率,不同水平的人对它们的理解程度往往大相径庭。例如,只要具备一定的线性代数基础,就一定会知道矩阵的本质是一种映射。然而,考虑到初学者不一定能够理解这种抽象的解释,入门教材一般会使用更浅显的说明方式。因此,笔者希望打破这一惯例,教授初学者矩阵更加本质的含义,即,矩阵是一种映射!