我手头的这本《贝叶斯方法——概率编程与贝叶斯推断》是2017年由中国工信出版集团和人民邮电出版社出版的,适合机器学习、贝叶斯推断、概率编程等相关领域从业者和爱好者阅读学习。因为工作需要概率知识,急需补充相关知识,所以决定以这本书的内容做主要脉络认真学习一下。
1.1引言
1. 先验概率与后验概率(条件概率)
古典统计学派认为,概率是事件在长时间发生的频率。如波音公司近十年飞机事故的频率值。无法(只能使用“替代概率”的说法)解释某些没有长期频率的事件,如经常提及总统选举提及某某候选人胜选的概率,但选举本身只发生一次。
贝叶斯派将概率解释为对某个事件的信心。除去所有外部信息,一个人对飞机事故发生的信心应该等同于他了解到的飞机事故的频率。我们只能了解到部分真相,但可以通过不断收集证据来完善我们队事物的观念。“当事实发生改变,我们的观念也跟着发生改变”。
一个事件A发生的信念记做P(A),这个值我们称为先验概率;随着证据信息不断涌现而被掌握到之后,证据会更新信念。我们用P(A|X)表示跟新后的信念,其含义为在得到证据X后,A事件的概率。我们称更新后的信念为后验概率。
例子:
P(A) ——一段很长很复杂的代码含有bug的概率(先验概率);
P(A|X)——代码通过了所有的X个测试;现在代码仍然有bug的概率(后验概率)。不过我们知道这个概率现在变得非常小了。
上述例子中,即便获得了新的证据,我们并没有完全放弃初始的信念,但我们重新调整了信念,使之更符合目前的证据,也就是说,证据让我们结果更有信心。
通过引入先验的不确定性,我们事实上允许初始信念可能是错误的。在观察数据、证据或其它信息之后,我们不断更新我们的信念使得它错的不那么离谱。
2.频率推断与贝叶斯推断
频率推断(输入统计问题后)返回一个估计值,通常是个统计量,如均值、方差;
贝叶斯推断(输入先验信息和更新的证据后)通常会给出返回概率值。“如通常我的代码有bug,通过了所有测试后,它是不是没有bug了?”,贝叶斯推断函数会给出:yes的概率80%,no的概率20%。
通过引入先验概率和返回概率结果(而不是某个固定值),我们保留了不确定性。这种不确定性正式小数据集的不稳定性的反映。
频率方法在很多领域非常有用并可能是做好的方法,如最小方差线性回归、LASSO回归、EM算法,这些都是非常有效和快速的方法。贝叶斯方法能够在这些方法失效的场景发挥作用,或者作为更优弹性的模型而补充。
《统计思维--程序员数学之概率统计》
绪论:生成可控的随机数据集合
用常用python模块生成一些数据集合,之后可以用这些数据来了解分布、方差、采样和一些类似的统计学术语。由于已经预先知道了模型,我们可以用模拟数据来了解统计方法是不是能够得到我们想要的模型,还可以了解统计方法应用到已知数据上的结果对统计方法进行验证。
从另一个角度了解统计术语——————————————————
分布(或概率分布):表示统计实验结果和发生概率之间的联系;
标准差:这个数值表示个体和群体之间的差异。如果差异很大,标准差会比较大;如果所有个体实验在整组范围内基本相同,标准差会比较小。
方差:标准差的平方。
总体(或统计总体):所有潜在的可观察案例集合。
样本:这是总体的子集。我们无法拿到世界上所用学术的所有成绩,因此只能收集抽样数据并对它们进行建模。
第二章分布
描述变量的最佳方法之一是列出该变量在数据集中的值,以及每个值出现的次数。这种描述称为该变量的分布(distribution).
分布最常用的呈现方法是直方图(histogram),及即展示每个值的频数(frequent--值一个值的出现次数)的图形。
刚开始使用一个新的数据集时,建议可以逐个探索那些计划用到的变量,使用直方图展示变量的信息:集中趋势、众数、展布、尾部、离群值。
集中趋势()------变量值是否聚集在某个值的附近
众数(mode)-------是否有多个聚集点
展布(spread)------变量的变化特性如何?
尾部(trail)------当值偏离众数时,其概率降低多快?
离群值()------是否有远离众数的极端值
为了回答以上问题,通常设计好相关汇总统计量:
均值(mean)------用于描述数据分布的集中趋势(central tendency);数学期望------随机变量的平均值;是对离散型随机变量中心化的度量。
方差(variance)------用于面上一个分布的变化性(展布spread)的汇总统计量
效应量(effectsize)------用于描述效应大小的汇总统计量。例如要描述两个取值之间的差异,一个显而易见的选择是使用均值的差异
------另一个描述效应的方法是将群组之间的差异与群组内的变化性进行比较。Cohen's d 就是这样一个统计量,其定义如下:
d = (群1的均值 - 群2的均值)/ s
其中s是“合并标准差”(pooled standard deviation),为 sqrt ((方差1*数量1 + 方差2*数量2)/(数量1 + 数量2))
第三章 概率质量函数(probability mass function, PMF)
概率质量函数是将每个值映射到其概率。概率的频数的分数表示,样本量是n,将频数除以n(这一过程称为正态化normalization)即可计算出概率。
探索数据并尝试发现其中的模式和关系时,直方图和PMF都是非常实用的。一旦你对数据有了大致的了解,下一步最好设计一种可视化方法,尽可能地展现你所发现的模式。
第7章 变量之间的关系
如果能从一个变量的信息中得到另一个变量的信息,那么这两个变量是相关的。
7.1.散点图
研究两个变量之间关系的最简单方法是散点图,可以对变量关系有个大致的了解。绘制散点图的涉及抖动、透明处理、不同区间着色等技术环节。
7.2
更深入地了解两个变量之间的关系可以采用如下可视化的方法:对一个变量进行分区,绘制另一个变量的百分位数。
第十三章生存分析
生存分析(survival analysis)是一种描述事务持续时间的方式。生存分析常用语研究人类寿命。但也使用于研究机械和电子元器件的“生存期”,或更为通用第研究一个事件将要发生的时间。
13.1 生存曲线: S(t) = 1 - CDF(t) 其中CDF(t)是生存期小于或等于它的概率。 生存曲线函数S(t)将一个持续时间t映射到存活时间超过t的概率。
13.2 危险函数: 从时间t映射到在t终止的比例。λ(t) = ( S(t) - S(t+1) ) / S(t). 可以了解为终止于t(即t时刻还生存但t+1时刻已经死亡)的生存期比例; 分子部分也就是PMF(t).
如果给出计算生存期所需的CDF,那么很容易计算生存函数和危险函数。但是,很多现实世界场景中,我们无法直接度量生存去的分布,必须进行判断。
13.3 kaplan-meier估计:基本思路是使用数据估计危险函数,然后将危险函数转换为生存函数。
如果要估计初婚年龄的危险函数,我们需要对每个年龄进行计算:(1)在这个年龄结婚的女性人数;(2)有“结婚危险”的女性人数--其中包括在这个年龄之前未婚的所有女性;
在SAT求解器中reduced函数负责定期管理学习子句集将其“瘦身”。我们可以认为被清理的学习子句其生成期结束了。记录每个子句出生时刻、被使用的次数、最后一次使用距离死亡的时间等,可以研究学习子句的生成曲线,为相关策略提供模型支撑。