程序员眼中的统计学(3)】概率计算:把握机会
概率计算:把握机会
作者 白宁超
2015年10月14日18:35:23
摘要:程序员眼中的统计学系列是作者和团队共同学习笔记的整理。首先提到统计学,很多人认为是经济学或者数学的专利,与计算机并没有交集。诚然在传统学科中,其在以上学科发挥作用很大。然而随着科学技术的发展和机器智能的普及,统计学在机器智能中的作用越来越重要。本系列统计学的学习基于《深入浅出统计学》一书(偏向代码实现,需要读者有一定基础,可以参见后面PPT学习)。正如(吴军)先生在《数学之美》一书中阐述的,基于统计和数学模型对机器智能发挥重大的作用。诸如:语音识别、词性分析、机器翻译等世界级的难题也是从统计中找到开启成功之门钥匙的。尤其是在自然语言处理方面更显得重要,因此,对统计和数学建模的学习是尤为重要的。最后感谢团队所有人的参与。( 本文原创,转载注明出处:概率计算:把握机会 )
目录
【程序员眼中的统计学(1)】 信息图形化:第一印象
【程序员眼中的统计学(2)】集中趋势度量:分散性、变异性、强大的距
【程序员眼中的统计学(3)】概率计算:把握机会
【程序员眼中的统计学(4)】离散概率分布的运用:善用期望
【程序员眼中的统计学(5)】排列组合:排序、排位、排
【程序员眼中的统计学(6)】几何分布、二项分布及泊松分布:坚持离散
【程序员眼中的统计学(7)】正态分布的运用:正态之美
【程序员眼中的统计学(8)】统计抽样的运用:抽取样本
【程序员眼中的统计学(9)】总体和样本的估计:进行预测
【程序员眼中的统计学(10)】假设检验的运用:研究证据
【程序员眼中的统计学(11)】卡方分布的应用
【程序员眼中的统计学(12)】相关与回归:我的线条如何?
1 随机试验
1 随机试验的定义
我们将对自然现象的一次观察或进行一次科学试验称为试验。
2 随机试验的举例
举例1:硬币试验
E1: 抛一枚硬币,观察正(H)反(T) 面的情况。
E2: 将一枚硬币抛三次,观察正反面出现的情况。
E3: 将一枚硬币抛三次,观察出现正面的情况。
E4: 电话交换台一分钟内接到的呼唤次数。
E5: 在一批灯泡中任取一只, 测试它的寿命。
举例2:数学家去赌场
新闻:数学家3年赌赢156亿人民币,数学家在赌场里有什么优势?
令19名数学家惊喜的是,虽然他们所掌握的那些高深数学知识在现实生活中似乎派不上多大用场,但竟然出人意料地在赌场上显现出了巨大的威力!据悉,19名数学家参与的大多是赛马、赛狗以及21点之类的赌博项目。而每次下注之前,他们会利用自己所精通的专业数学方法对各种中奖的概率进行推理演算,从而研究出某种“逢赌必赢”的秘笈!因为它的形态看起来合乎理想。在现实生活中,遇到测量之类的大量连续数据时,你“正常情况下”会期望看到这种形态。
2 样本空间与随机事件
1 样本空间的定义
随机试验E的所有可能结果组成的集合称为 E的样本空间, 记为S。样本空间的元素称为样本点,用ω表示(有限个或可列个)。
2 样本空间的分类
离散样本空间: 样本点为有限个或可列个。例ω1, ω2等。
无穷样本空间: 样本点在区间或区域内取值。例:灯泡的寿命{t|t≥0}。
例如:只包含两个样本点的样本空间。
S={H,T} 其中ω1:H, ω2:T
以上既可以作为抛掷硬币出现正面或出现反面的模型, 也可以作为产品检验中合格与不合格的模型, 又能用于排队现象中有人排队与无人排队的模型等。
3 实例分析
4 随机事件
定义: 样本空间S的子集称为随机事件,简称事件。在一次试验中,当且仅当这一子集中的一个样本点出现时,称这一事件发生。
- 基本事件:由一个样本点组成的单点集。如:{H},{T}。
- 复合事件:有两个或两个以上的基本事件复合而成的事件。如:E3中{出现正面次数为奇数}。
- 必然事件: 样本空间S是自身的子集,在每次试验中总是发生的,称为必然事件。
- 不可能事件:空集φ不包含任何样本点,它在每次试验中都不发生,称为不可能事件。
3 概率的概念
1 古典定义
可能概型的两个特点:
(1)样本空间的元素只有有限个;
(2)实验中每个基本事件发生的可能性相同。
例如:掷一颗骰子,观察出现的点数。
概率的古典定义:
对于古典概型,样本空间S={w1, w2, … , wn},设事件A包含S的k个样本点,则事件A的概率定义为
2 古典概型概率的计算步骤
(1) 选取适当的样本空间S, 使它满足有限等可能的要求, 且把事件A表示成S的某个子集.
(2) 计算样本点总数n及事件A包含的样本点数k.
(3) 用下列公式计算:
3 几何定义
当随机试验的样本空间是某个区域,并且任意一点落在度量 (长度, 面积, 体积) 相同的子区域是等可能的,则事件 A 的概率可定义为:P(A)=m(A)/m(Ω)其中m(Ω)是样本空间的度量,m(A)是构成事件A的子区域的度量。借助于几何上的度量来合理规定的概率称为是几何概率。
说明: 当古典概型的试验结果为连续无穷多个时,就归结为几何概率。
4 几何概型概率的性质
(1) 对任一事件A ,有0≤p(A)≤1;
(2) p(Ω)=1,p(∅)=0;
(3) 对于两两互斥的可列多个事件A1,A2, ,P(A1 + A2 + ) = P(A1 )+P( A2 )
4 维恩图
概率计算有时很复杂,因此,用图形方式表示概率往往十分有用。其中有一个办法是这样的:画一个方框代表样本空间S,然后画几个圆圈代表各个相关事件,这种图称为维恩图。如下图所示:
1 使用维恩图求解问题的优缺点
优点: 在用图形方式表现概率问题时,维恩图会是一个很有用的工具,同时在集合的划分上也会有很大的帮助。(检验交集、表现互斥事件表现极佳)
不足: 不方便表现条件概率。(表现独立性方面效果不好)
2 事件间的关系与事件的运算
5 概率公理化定义
概率定义
设S是样本空间, E是随机试验. 对于E的每个事件A对应一个实数P(A), 称为事件 A的概率, 其中集合函数P(.)满足下列条件:
(1) 对任一事件A,有P(A)≥0; (非负性)
(2) P(S)=1;(规范性)
(3) 设A1,A2,…是两两互不相容的事件,则有P(A1A2…)=P(A1)+P(A2)+… (可列可加性)
概率的性质
性质1. p(Φ)=0
性质2. 若A1,A2.··· · · An是两两互不相容的事件,则P(A1UA2U....UAn)=P(A1)+P(A2)+.....+P(An)(可列可加性)
性质3. 若A包含于B,则有P(B-A)=P(B)-P(A);P(B)>=P(A)
性质4. 对于任意一个事件A, P(A)<=1
性质5. 对任一事件A, p(A')=1-P(A)
性质6. 对于任意两事件A,B,有: P(AUB)=P(A)+P(B)-P(AB)
6 条件概率
1 条件概率的描述
设试验E的样本空间为S, A, B是事件, 要考虑在A已经发生的条件下B发生的概率, 这就是条件概率问题。
2 条件概率的定义
设A,B是两个事件,且P(A)>0,称: P(A|B)=P(AB)/P(A) (AB不独立)
设A,B是两个事件,且P(A)>0,称: P(A|B)=P(A) (AB独立)
3 条件概率的性质
性质1. 对于每一个事件B,有: 1>=P(B|A)>=0
性质2. P(S|A)=1
性质3. 设B1,B2· · ·两两互不相容,则 P(UBi|A)=∑P(Bi|A)
4 条件概率的计算方法
(1)公式法:
先计算P(A),P(AB),然后按公式计算P(B|A)=P(AB)/P(A)
(2)图解法:利用概率树求解
案例一:
图圈饼店正在调查客户购买圈饼和咖啡的概率,下面是一些线索,画出概率树并求解相应概率。以下是已知条件:
P(圈饼) = 3/4
P(咖啡|圈饼’) = 1/3
P(圈饼∩咖啡) = 9/20
计算过程:
P(咖啡|圈饼) = P(圈饼∩咖啡) / P(圈饼) = 3/5;
P(咖啡|圈饼`) = P(圈饼`∩咖啡) / P(圈饼`) = 1/3;
P(咖啡`|圈饼) = P(圈饼∩咖啡`) / P(圈饼) = 2/5;
P(咖啡`|圈饼`) = P(圈饼`∩咖啡`) / P(圈饼`) = 2/3;
5 使用概率树求解问题的优缺点:
(1)优点: 能够以图形体现条件概率,同时帮助计算概率,利用分支结构,条理清楚,不易算错。
(2)不足: 画概率树很浪费时间。
6 条件概率java实现:
/*** 计算条件概率* * @param pOfA 概率P(A)* @param pOfAB 概率P(AB)* @return 概率P(B|A)*/public static float CondProFunc(float pOfA, float pOfAB){String temp;BufferedReader brd=new BufferedReader(new InputStreamReader(System.in));while(true){//请用户输入概率P(A)的值 System.out.print("Input the number of pOfA(输入非零正整数):\n") ;try{temp=brd.readLine() ;pOfA=Float.parseFloat(temp) ;//概率P(A) //概率P(A)不能为0,不能是负数;if (pOfA <= 0) {System.out.println("输入类型错误!已退出!") ;return 0;}break;}catch(Exception e){System.out.println("对不起,只能输入非零数,请重新输入。") ;}}System.out.println("你输入的pOfA是: "+ pOfA) ;while(true){//请用户输入概率P(AB)的值System.out.print("Input the number of pOfAB:\n") ;try{temp=brd.readLine() ;pOfAB=Float.parseFloat(temp) ;//概率P(AB)break;}catch(Exception e){System.out.println("对不起,只能输入非零数,请重新输入。") ;}}System.out.println("你输入的pOfAB是: "+ pOfAB) ;return pOfAB/pOfA;}
7 全概率公式
1 全概率公式的定义
设B1 ,B2 , ··· · · Bn 为S的一个划分,P(Bi)>0,(i = 1,2 · · ·,n),A为E的事件,则P(A) =∑P(Bi)P(A|Bi) ,称为全概率公式。
2 全概率java实现
/*** 计算全概率* @param Bi 概率P(Bi);* @param A_Bi 条件概率P(A|Bi);* @return 返回全概率P(A);*/static float TotalProb(int num, float[] Bi, float[] A_Bi) {float pA = 0;//全概率P(A)for (int i = 0; i < num; i++) {pA += A_Bi[i] * Bi[i];}return pA;}
8 贝叶斯公式
1 贝叶斯公式的定义
设B1 ,B2 , ··· · · Bn 为S的一个划分,P(Bi)>0,(i = 1,2 · · ·,n),A是一个随机事件,且P(A)>0,则有
称为贝叶斯公式。
2 贝叶斯概率java实现
/*** 计算贝叶斯概率* @param Bi 概率P(Bi);* @param A_Bi 条件概率P(A|Bi);* @return 返回贝叶斯概率P(Bi|A);*/static float[] BayesProb(int num, float[] Bi, float[] A_Bi) {float pA = 0;//全概率P(A)Bi_A = new float[num];//概率P(Bi|A)for (int i = 0; i < num; i++) {pA += A_Bi[i] * Bi[i];}for (int i = 0; i < num; i++) {Bi_A[i] = (A_Bi[i]*Bi[i])/pA ;}return Bi_A;}
9 区分全概率公式与贝叶斯公式
1 从定义区分全概率公式与贝叶斯公式
全概公式:首先需要建立一个完备事件组,实际上全概率就是已知第一阶段,然后再求第二阶段,比如第一阶段分A B C三种,然后A B C中均有D发生的概率,最后求D的概率P(D)=P(A)*P(D/A)+P(B)*P(D/B)+P(C)*P(D/C)
贝叶斯公式:贝叶斯其实就是已知第二阶段,然后去反推第一阶段的求后验概率,这时候关键是利用条件概率公式做转换。此时全概率作为分母。P(A/D)=P(AD)/P(D)=P(A)*P(D/A)/P(D)
2 通过案例区分全概率公式与贝叶斯公式
案例:
食用奶粉发生中毒事件,已知有三种品牌的奶粉,分别为:A. 三鹿 B. 伊利 C. 光明
问题一:已知在三种奶粉存在情况下,患病的概率。
问题二:已知在患病的前提下,求由于三鹿奶粉导致患病的概率。
解答:
1.全概公式: P(D)=P(A)*P(D/A)+P(B)*P(D/B)+P(C)*P(D/C)
2.贝叶斯公式:P(A/D)=P(AD)/P(D)=P(A)*P(D/A)/P(D)
10 独立性
1 独立性定义
设A,B是试验E的两事件,当P(A)>0, 可以定义P(B|A)=P(AB)/P(A)
一般地, P(B|A)≠P(B), 但当A的发生对B的发生的概率没有影响时,有P(B|A)=P(B),由乘法公式有P(AB)=P(A)P(B|A)=P(A)P(B).
2 独立性举例
设试验E为掷甲、乙两枚硬币,观察正反面出现情况. 设A—“甲币出现H”, B—“乙币出现H”, 试求:B发生的条件下,A发生的概率
由定义可知:
1) 零概率事件与任何事件都是相互独立的。
2) 由对称性, A,B相互独立, 必有B, A 相互独立。
3 独立性性质
设A,B是两事件,且P(A)>0,则A,B相互独立的充要条件是: P(B|A)=P(B).
有如下结论:
(1) 若A,B相互独立,则 A与B',A‘与B,A'与B'也相互独立。
(2)P(A)>0,P(B)>0, 则A,B相互独立与A,B互斥不能同时成立。
11 总结
1 主要内容
样本空间: 我们将随机实验E的一切可能基本结果组成的集合称为E的样本空间,记为S。样本空间的元素,即E的每一个可能的结果,称为样本点。样本空间又叫基本事件空间。
随机事件具有的特点如下:
a.可以在相同的条件下重复进行;
b.每个试验的可能结果不止一个,并且能事先预测试验的所有可能结果;
c.进行一次试验之前不能确定哪一个结果会出现。
概率的性质:
性质1. P(Φ)=0.
性质2. (有限可加性)当n个事件A1,…,An两两互不相容时: P(A1∪...∪An)=P(A1)+...+P(An).
性质3. 对于任意一个事件A:P(A)=1-P(非A).
性质4. 当事件A,B满足A包含于B时:P(B-A)=P(B)-P(A),P(A)≤P(B).
性质5. 对于任意一个事件A,P(A)≤1.
性质6. 对任意两个事件A和B,P(B-A)=P(B)-P(AB).
性质7. (加法公式)对任意两个事件A和B,P(A∪B)=P(A)+P(B)-P(A∩B)
维恩图: 维恩图的适用场景是帮助我们做些简单概率的计算,比如交集,并集,补集。但是过于复杂的概率计算,比如条件概率,并不适合用维恩图来表示,这时,概率树可以帮助我们计算条件概率。
全概率公式: 首先建立一个完备事件组,然后一定是在已知第一阶段的基础上,求第二阶段事件发生的概率。
贝叶斯公式:贝叶斯其实就是已知第二阶段,然后去反推第一阶段的求后验概率,这时候关键是利用条件概率公式做转换。此时全概率作为分母。
事件的独立性:最简单就是利用P(AB)=P(A)P(B)来判断,因为这一公式与事件独立是充要条件,在实际应用中简单方便。
特别要注意的是,A与B相互独立,A与B互斥是不能同时成立的。
2 重点区分
全概率公式与贝叶斯公式的区别:在具体应用上结合题目要求,选择恰当的公式求解,可以记住特例来判断。
互斥事件与独立事件的区别:互斥事件就是彼此相互制约,此发生彼就不能发生;独立事件就是彼此发生与否没有关系。
12 开源共享
PPT:http://yunpan.cn/cFVMap9Q9FJnr 访问密码 e997
开源代码:http://yunpan.cn/cFVMh3kKqGs2e 访问密码 943f
转载于:https://www.cnblogs.com/baiboy/p/tjx3.html
程序员眼中的统计学(3)】概率计算:把握机会相关推荐
- 【程序员眼中的统计学(12)】相关与回归:我的线条如何? (转)
阅读目录 目录 1 算法的基本描述 2 算法的应用场景. 3算法的优点和缺点 4 算法的输入数据.中间结果以及输出结果 5 算法的代码参考 6 共享 相关与回归:我的线条如何? 作者 白宁超 2015 ...
- 【程序员眼中的统计学(12)】相关与回归:我的线条如何?
相关与回归:我的线条如何? 作者 白宁超 2015年10月25日22:16:07 摘要:程序员眼中的统计学系列是作者和团队共同学习笔记的整理.首先提到统计学,很多人认为是经济学或者数学的专利,与计算机 ...
- 【程序员眼中的统计学(11)】卡方分布的应用
卡方分布的应用 作者 白宁超 2015年8月9日22:33:00 摘要:程序员眼中的统计学系列是作者和团队共同学习笔记的整理.首先提到统计学,很多人认为是经济学或者数学的专利,与计算机并没有交集.诚然 ...
- 【程序员眼中的统计学(4)】离散概率分布的运用:善用期望
离散概率分布的运用:善用期望 作者 白宁超 2015年10月15日0:37:02 摘要:程序员眼中的统计学系列是作者和团队共同学习笔记的整理.首先提到统计学,很多人认为是经济学或者数学的专利,与计算机 ...
- 【程序员眼中的统计学(6)】几何分布、二项分布及泊松分布:坚持离散
几何分布.二项分布及泊松分布:坚持离散 作者 白宁超 2015年8月4日13:08:28 摘要:程序员眼中的统计学系列是作者和团队共同学习笔记的整理.首先提到统计学,很多人认为是经济学或者数学的专利, ...
- GPU Saturday技术沙龙:OpenCL程序员眼中的下一代APU架构
摘要:GPU Saturday技术沙龙在北京·3WCoffee成功举办.本次活动邀请AMD资深技术人员及清华大学项目研究员就AMD最新的GCN架构.GPU加速计算在挖掘比特币.典型图像算法.深度神经网 ...
- Python概述:C++程序员眼中的Python
在C++的程序员眼中,脚本是个奇葩的逻辑.当然也可能我比较奇葩.不过从Lua走过来,python的理解也不那么难.记录一下刚学python要注意的东西,也算是个快速入门吧.如果你是从C++过来 ...
- iPhone开发入门(1)—-程序员眼中的iPhone
http://blog.csdn.net/itudou_2010/article/details/5492272 iPhone开发入门(1)--程序员眼中的iPhone 博主:易飞扬 原文链接 : h ...
- 观点:再见Objective C?程序员眼中的Swift
对于苹果开发者来说,如今已经进入了"Swift时代".虽然编程语言Objective C备受喜爱,不过它作为苹果主流编程语言的日子已经所剩无几.随着WWDC开发者大会的落幕,Swi ...
- java中类图概念,程序员眼中的UML(4)--类图释疑之一,Attribute和Property之区别
程序员眼中的UML(4) --类图释疑之一,Attribute和Property之区别 上一篇中提出了很多问题,其中最令人费解的可能就是Attribute和Property之区别了吧.我在网络上寻找良 ...
最新文章
- mybatis02映射动态sql关联查询spring整合mybatis
- VC++ 字符串操作学习总结
- java 日期计算类_java日期计算工具类【包含常用的日期计算方法】
- Redis 实践笔记
- 2.使用windows下的客户端连接虚拟机上的oracle连不上的时候的解决方案
- 我犯的错误--struts标签s:radio
- IDT系列:(二)中断处理过程,使用bochs调试IDT中的中断服务程序
- MacBook(macOS) 如何安装 Homebrew Cask(作废)
- python将excel日期比大小_sql与excel、python比较(二)——日期和时间函数
- mysql如何植入到oracle_分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节...
- linux获取连续数组下标值,shell 数组,双层循环打印变量
- [转]如何才能在 IIS 7.5 使用 Windows PowerShell Snap-In 功能
- c语言猜数字课设报告,c语言猜数字课程设计报告.doc
- PQ分区出错用Ghost来进行补救
- 网络会议openmeetings下的openmeetings-util文件分析7
- 清华学霸:想学好英语,除了3500词,记牢这514个核心短语更重要
- word2vec损失函数
- 微信授权demo php,PHP微信公众平台oauth2.0网页授权登录类的封装demo
- MySQL——为表和字段取别名
- 十种最令人讨厌的编程语言,你使用的语言上榜了吗?
热门文章
- 自己制作的ORMap框架终于完成的差不多了。
- Thinking in Java 10.2 链接到外部类
- vs2015 hiredis编译使用
- python常用数据结构及算法_常用数据结构和算法汇总
- url 收录工具_为什么我的网站不收录??
- iis 运行时错误_新手必看,17个常见的Python运行时错误
- 使用vue脚手架进行模块化开发
- nova3能用鸿蒙,鸿蒙公测新增6款手机,都是nova系列,包括一款4G手机
- python训练营 朋友圈点赞收费吗_微信朋友圈点赞,是不是扣话费?有人给
- 面向对象(Python):学习笔记之异常