【不周山之数据挖掘】零 概率与统计基础知识

欢迎走进数据挖掘的世界!『不周山之数据挖掘』系列会结合原理与实践,在弄懂数据挖掘理论的前提下,用实例和分析应用数据挖掘。这一讲是系列正文的开端,主要介绍开始学习数据挖掘的预备知识和相关学习资料。


更新历史

  • 2016.11.27: 完成初稿

任务目标

  1. 复习概率和统计的基本知识
  2. 熟悉并掌握各种分布
  3. 意识到统计分析的数字是具有欺骗性
  4. 阅读推荐书籍

两类专家

开始复习之前,我们先来看看两类专家的对比(出自《信号与噪声》):

狐狸型专家的想法 刺猬型专家的想法
千伎百俩:汇聚不同学科的思想,忽略最初的政治派别 一技之长:把大部分精力投入到一两个重大问题上,以怀疑的眼光看待『局外人』的观点
适应力强:最初的方法失效后,试图找到新的方法,或同时寻求多种方法 坚持力强:坚持『总揽一切』的方法,新数据只能用来改善原始模式
严于律己:有时会愿意(或是欣于)承认预测中的错误并接受谴责 固执己见:错误归咎到坏运气或特殊情况上——好模式没有赶上好时机
承认复杂性:承认宇宙的复杂性,认为许多基本问题不可解决或本身就是不可预测的 寻找秩序:一旦从噪声中找到信号,便期望世界遵循某种相对简单的支配关系
谨慎:用概率术语表达预测结论,并且证明自己的观点是正确的 自信:很少对自己的预测进行正面回复,并且不愿改变自己的预测
经验主义:更多地依赖观察而非理论 意识形态:期待日常的问题正是宏伟理论或斗争的体现
较好的预测家 较差的预测家

我们学习数据挖掘,自然是希望自己能够成为『好』的预测家!而数据挖掘中很重要的一个意识就是:统计分析中陷阱重重。

统计分析中的陷阱

概率和统计是一种观察世界的角度,统计思维从某种程度上来说和读写能力一样重要。回顾自己常犯的错误,很多时候不是因为那些我不知道的事情,而是我知道的是错误答案的事情,这种错误的『正确感』最终导致了错误发生。而概率和统计其实是利用数据对我们已有的偏见进行纠正,这个过程中会有很多看似『反常』的结论出现。至于是相信感觉还是相信数字,啊这真是一个令人头疼的问题。下面是摘录自《统计陷阱》中的只言片语,大家可以先感受一下:

  • 有三种谎言:谎言,糟糕透顶的谎言和统计资料
  • 整数总是不完善的
  • 单凭某一数据很难反应实情
  • 一条河永远不可能高于它的源头,同理,对样本研究后得到的结论不会好于样本本身
  • 一个以抽样为基础的报告如果要有价值,就必须使用具有代表性的样本,这种样本排除了各种误差
  • 无形的误差与有形的误差一样容易破坏样本的可信度
  • 普查工作者一般都具有足够的统计知识、技术以及调查费用以确保抽样的精确度。他们并非居心叵测之徒。但并不是所有能见到的数据都产生于这样良好的环境,也并不是所有的数据都会有附有类似的精确度说明
  • 如果某条信息提供了显著性程度,你将对它有更深的了解。显著程度通常用概率表示
  • 将『正常的』与『期望的』混为一谈导致事情变得更糟
  • 这些没有透露的数据其欺骗性在于人们经常忽略了它们的不存在,这当然也是使用这些数据的人获取成功的奥秘
  • 当一个平均数、一张图表或者某种趋势遗漏了这些重要的数据,请对它们保留一些怀疑
  • 你的样本以多大的精度代表总体是可以用数据来衡量的,那就是:可能误差和标准误差
  • 只有当差别有意义时才能称之为差别
  • 注意比例尺和起始标尺,这可能会产生极大的误导性
  • 利用一维图形的信息不对称,可以营造出非常夸张的视觉效果
  • 如果你想证明某事,却发现没有能力办到,那么试着解释其他事情并假装它们是同一回事
  • 相关并不等于因果,一定要注意这里的区别
  • 扭曲统计数据的最巧妙方法是利用地图
  • 百分数也给误解提供了肥沃的土壤。和小数一样,它也能为不确切的食物蒙上精确的面纱
  • 将一些看似能直接相加却不能这样操作的事情加在一起会产生大量的欺骗和隐瞒
  • 对统计资料提出的五个问题
    1. 谁说的?有意识的偏差和无意识的偏差
    2. 他是如何知道的?注意样本的有偏,数值是否足够大
    3. 遗漏了什么?
    4. 是否有人偷换了概念?
    5. 这个资料有意义吗?
  • 我们以为自己可以控制很多风险,但结果并非如此,也许这才是更大的威胁
  • 贪婪和恐惧是两个非常不稳定的因素,只有两者保持平衡,经济才能顺利发展。若贪婪在经济体系中占上风,就会产生经济泡沫;若恐惧因素压过贪婪,经济又会陷入恐慌
  • 狐狸型预测方法
    • 用概率的方法思考问题
    • 今天的预测是你以后人生的第一个预测
    • 寻求共识
  • 信息是决定预测成败的关键,并不是信息越多,预测就越成功
  • 经济是一个动态系统,不是一个方程式
  • 运气和技能通常被视为两个极端,但两者之间的关系其实更复杂一些
  • 若想做出更准确的预测,就必须承认我们的判断是不可靠的

是不是有点感觉了?那么现在复习课开始!

概率与统计基础知识

概率论主要研究随机事件,既然是研究,我们就不能用『可能/很可能/不太可能』这样的字眼了,要学会如何去量化这种可能性。

统计学主要是根据样本去推测总体情况,大部分的统计分集都是基于概率的,所以概率与统计经常会被放在一起。

那么概率与统计要如何复习呢?最简单粗暴的方法就是把一份我见过最完整的 Cheat Sheet 过一次(在这里),当然,这一讲也不会这么水,还是会把重要概念串讲一次的(部分内容来自《统计思维:程序员数学之概率统计》)。

假设我们要统计之前美国大选各个州各个城市的投票倾向,使用专业的统计学手段应该有如下几个步骤,才更可能绕过各种陷阱,得到更可能正确的结论(注意这里我一直在用可能,因为统计分析中,很少有东西是确定的):

  1. 收集数据 - 使用可靠来源的数据
  2. 描述性统计 - 计算能总结数据的统计量,并评测各种数据可视化的方法
  3. 探索性数据分析 - 寻找模式、差异和其他能解答我们问题的特征。同时,我们会检查不一致性,并确认其局限性
  4. 假设检验 - 在发现明显的影响时,我们需要评判这种影响是否真实,也就是说是否是因为随机因素造成的
  5. 估计 - 我们会用样本数据推断全部人口的特征

描述性统计量

当我们拿到一组数据,在别人问起『这组数据怎么样』这样的问题的时候,我们肯定不能把这组数据一个一个读出来,而是需要用一些数值来简单描述这组数据的特征,是为『描述性统计量』。

那么描述性统计量都有啥呢?常用的有:均值、平均值、方差、分布、直方图、概率质量函数、条件概率…之所以有这么多各种各样的描述性统计量,就是因为数据本身可以描述的维度太多了:

  • 平均值没办法了解数据之间的差异,于是有了方差
  • 方差只能描述数据之间的差异,但无法描述数据的分布,于是有了分布和直方图
  • 直方图没有办法套入数学公式体系进行快速推导,于是有了概率质量函数
  • 概率质量函数没办法处理附加条件的情况,于是有了条件概率

这么一说,是不是各种统计量就有了意义了?

连续分布

比较常用的连续分布是指数分布、帕累托分布、正态分布和对数正态分布,之所以称为『连续』,是因为它们的 CDF 是一个连续函数,而很多实际现象都近似于连续分布。

跟所有模型一样,连续分布也是一种抽象。换言之,就是会舍弃一些无关紧要的细节。例如,真实观察到的分布中可能会有测量误差或是对样本来说很奇怪的数据,而连续模型会消除这些无关紧要的细节。 连续模型也是一种数据压缩。如果模型能很好地拟合数据集,那么少量参数就可以描述大量数据。 有时候,我们会惊讶地发现某种自然现象服从某个连续分布,观察这些现象可以让我们深入理解真实的系统。

  • 指数分布:事件在每个时间点发生的概率相同,间隔时间的分布就是指数分布
  • 帕累托分布:最初用来描述财富分布状况,后来广泛用于描述自然界和社会科学中的各种现象,包括城镇大小、砂粒和陨石、森林火灾和地震等
  • 正态分布:也称为高斯分布,因其可以近似描述很多现象而成为最常用的分布

概率

概率可以认为是一个零到一之间的值,用于定量描述一件事情发生的可能性大小。如果 E 表示一个事件,那么 P(E) 就表示该事件发生的概率。检测 E 发生情况的过程就叫做试验(trial)。

虽然说关于概率本身的哲学意义还有一些争议,不过我们不妨暂时不去想它,来看看可能是历史上最富争议的概率问题 —— 蒙提霍尔问题(The Monty Hall problem)。

蒙提·霍尔原本是美国电视游戏节目 Let’s Make a Deal 的主持人,蒙提霍尔问题就是源自该节目中的一个游戏。如果你是参赛者,以下是节目现场的情况。 你会看到三扇关闭的门,蒙提会告诉你每扇门后的奖励:其中有一扇门后面是一辆车,而另外两扇门后面则是诸如花生酱或假指甲之类不太值钱的东西。奖品的摆放是随机的。 你的目标就是要猜出哪扇门后是汽车。如果猜对,汽车就归你了。 我们把你选择的门称为 A 门,其他两扇门分别是 B 门和 C 门。 在打开你所选择的 A 门之前,蒙提往往会打开 B 门或 C 门扰乱你的选择。(如果汽车确实是在 A 门后面,那蒙提随机打开 B 门或 C 门都没有问题。) 接下来,蒙提会给你一个机会:你是坚持原来的选择,还是选择另一扇未打开的门。 问题是,坚持原来的选择或选择另一扇门,会有什么不同吗?

这个看起来很简单的问题因为与人们的直觉完全不同而变得复杂了起来,一个靠谱的解释是:

大部分人凭直觉觉得这没有区别。因为,还剩下两扇门,所以汽车在A门后面的概率是50%。但这就错了。实际上,坚持选择A门,获胜的机会就只有 1/3;而如果选择另一扇门,获胜的机会就是 2/3。
其中的关键在于要明白,这里有三种可能的情况:汽车可能会在 A 门后,也可能在 B 门或 C 门后面。因为奖品是随机摆放的,所以每种情况的概率都是 1/3。 如果坚持选择 A 门,那么就只有在一开始汽车就在 A 门后面的情况下才能获胜,获胜的概率是 1/3。 但如果选择另一扇没打开的门,那么在 B 或 C 后面有车这两种情况下都会获胜,总体的获胜概率就是 2/3。

最后提一下聚类错觉(clustering illusion),指看上去好像有某种特点的聚类实际上是随机的。如何去验证呢?可以看看在随机情况下是否会产生类似聚类的概率,如果是的话,则认为聚类结果无意义,这个过程叫做蒙特卡罗模拟(Monte Carlo simulation)。

进阶知识

接下来的部分涉及到更加多的数学知识,因为篇幅所限,这里不再一一介绍,但是感兴趣的同学可以根据这些关键词按图索骥,一定会有不一样的收获。

  • 分布的运算:偏度、随机变量、概率密度函数、卷积、正态分布性质、中心极限定理
  • 假设检验:交叉验证、卡方验证
  • 估计:方差估计、误差、置信区间、贝叶斯估计
  • 相关性:协方差、最小二乘拟合、因果关系

术语表

术语表是很好的自查列表(内容来自《统计思维:程序员数学之概率统计》),如果有不明白的,可以去维基百科看看,或者一劳永逸找一本教材过一遍即可:

基本概念

  • 经验之谈(anecdotal evidence): 个人随意收集的证据,而不是通过精心设计并经过研究得到的
  • 直观效应(apparent effect): 表示发生了某种有意思的事情的度量或汇总统计量
  • 人为(artifact): 由于偏差、测量错误或其他错误导致的直观效应
  • 队列(cohort): 一组被调查者
  • 横断面研究(cross-sectional study): 收集群体在特定时间点的数据的研究
  • 字段(field): 数据库中组成记录的变量名称
  • 纵贯研究(longitudinal study): 跟踪群体,随着时间推移对同一组人反复采集数据的研究
  • 过采样(oversampling): 为了避免样本量过少,而增加某个子群体代表的数量
  • 总体(population): 要研究的一组事物,通常是一群人,但这个术语也可用于动物、蔬菜和矿产
  • 原始数据(raw data): 未经或只经过很少的检查、计算或解读而采集和重编码的值
  • 重编码(recode): 通过对原始数据进行计算或是其他逻辑处理得到的值
  • 记录(record): 数据库中关于一个人或其他对象的信息的集合
  • 代表性(representative): 如果人群中的每个成员都有同等的机会进入样本,那么这个样本就具有代表性
  • 被调查者(respondent): 参与调查的人
  • 样本(sample): 总体的一个子集,用于收集数据。
  • 统计显著(statistically significant): 若一个直观效应不太可能是由随机因素引起的,就是统计显著的
  • 汇总统计量(summary statistic): 通过计算将一个数据集归结到一个数字(或者是少量的几个数字),而这个数字能表示数据的某些特点
  • 表(table): 数据库中若干记录的集合

描述性统计量

  • 区间(bin): 将相近数值进行分组的范围
  • 集中趋势(central tendency): 样本或总体的一种特征,直观来说就是最能代表平均水平的值
  • 临床上有重要意义(clinically significant): 分组间差异等跟实践操作有关的结果
  • 条件概率(conditional probability): 某些条件成立的情况下计算出的概率
  • 分布(distribution): 对样本中的各个值及其频数或概率的总结
  • 频数(frequency): 样本中某个值的出现次数
  • 直方图(histogram): 从值到频数的映射,或者表示这种映射关系的图形
  • 众数(mode): 样本中频数最高的值
  • 归一化(normalization): 将频数除以样本大小得到概率的过程
  • 异常值(outlier): 远离集中趋势的值
  • 概率(probability): 频数除以样本大小即得到概率
  • 概率质量函数(Probability Mass Function,PMF): 以函数的形式表示分布,该函数将值映射到概率
  • 相对风险(relative risk): 两个概率的比值,通常用于衡量两个分布的差异
  • 分散(spread): 样本或总体的特征,直观来说就是数据的变动有多大
  • 标准差(standard deviation): 方差的平方根,也是分散的一种度量
  • 修剪(trim): 删除数据集中的异常值
  • 方差(variance): 用于量化分散程度的汇总统计量

累积分布函数

  • 条件分布(conditional distribution): 在满足一定前提条件下计算出的分布
  • 累积分布函数(Cumulative Distribution Function,CDF): 将值映射到其百分等级的函数
  • 四分差(interquartile range): 表示总体分散情况的值,等于75和25百分等级之间的差
  • 百分位(percentile): 与百分等级相关联的数值
  • 百分等级(percentile rank): 分布中小于或等于给定值的值在全部值中所占的百分比
  • 放回(replacement): 在抽样过程中,“有放回”表示对于每次抽样,总体都是不变的。“无放回”表示每个元素只能选择一次
  • 再抽样(resampling): 根据由样本计算得到的分布重新生成新的随机样本的过程

连续分布

  • 连续分布(continuous distribution): 由连续函数描述的分布
  • 语料库(corpus): 特定语言中用做样本的正文文本
  • 经验分布(empirical distribution): 样本中值的分布
  • 误差函数(error function): 一种特殊的数学函数,因源自误差度量研究而得名
  • 一次频词(hapaxlegomenon): 表示语料库中只出现一次的词。这个单词在本书中迄今出现了两次
  • 间隔时间(interarrival time): 两个事件的时间间隔
  • 模型(model): 一种有效的简化。对于很多复杂的经验分布,连续分布是不错的模型
  • 正态概率图(normal probability plot): 一种统计图形,用于表示样本中排序后的值与其服从正态分布时的期望值之间的关系
  • 秩变换(rankit): 元素的期望值,该元素位于服从正态分布的已排序列表中。

概率

  • 贝叶斯认识论(Bayesianism): 一种对概率更泛化的解释,用概率表示可信的程度
  • 变异系数(coefficient of variation): 度量数据分散程度的统计量,按集中趋势归一化,用于比较不同均值的分布
  • 事件(event): 按一定概率发生的事情
  • 失败(failure): 事件没有发生的试验
  • 频率论(frequentism): 对概率的一种严格解读,认为概率只能用于一系列完全相同的试验
  • 独立(independent): 若两个事件之间相互没有影响,就称这两个事件是独立的
  • 证据的似然值(likelihood of the evidence): 贝叶斯定理中的一个概念,表示假设成立的情况下看到该证据的概率
  • 蒙特卡罗模拟(Monte Carlo simulation): 通过模拟随机过程计算概率的方法
  • 归一化常量(normalizing constant): 贝叶斯定理中的分母,用于将计算结果归一化为概率
  • 后验(posterior): 贝叶斯更新后计算出的概率
  • 先验(prior): 贝叶斯更新前计算出的概率
  • 成功(success): 事件发生了的试验
  • 试验(trial): 对一系列事件是否可能发生的尝试
  • 更新(update): 用数据修改概率的过程。

分布的运算

  • 中心极限定理(Central Limit Theorem): 早期的统计学家弗朗西斯·高尔顿爵士认为中心极限定理是“The supreme law of Unreason”
  • 卷积(convolution): 一种运算,用于计算两个随机变量的和的分布
  • 虚幻的优越性(illusory superiority): 心理学概念,是指人们普遍存在的将自己高估的一种心理
  • 概率密度函数(probability density function): 连续型累积分布函数的导数
  • 随机变量(random variable): 一个能代表一种随机过程的客体
  • 随机数(random variate): 随机变量的实现
  • 鲁棒性(robust): 如果一个统计量不容易受到异常值的影响,我们说它是鲁棒的
  • 偏度(skewness): 分布函数的一种特征,它度量的是分布函数的不对称程度

假设检验

  • 单元格(cell): 在卡方检验中,将观测按一定的标准分到各个单元格里,每个单元格代表一种分类
  • 卡方检验(chi-square test): 用卡方统计量做统计量的统计检验
  • 交叉验证(cross-validation): 交叉验证使用一个数据集进行探索性数据分析,然后用另一个数据集进行测试
  • 假阴性(false negative): 在效应真实存在的情况下,我们认为这个效应是由偶然因素引起的
  • 假阳性(false positive): 在原假设为真的情况下,我们拒绝了原假设的结论
  • 假设检验(hypothesis testing): 判定出现的效应是否具有统计显著性的过程
  • 似然比(likelihood ratio): 一种概率的比值, P(E|A)/P(E|B),这里A和B是两种假设。似然比不依赖于先验概率,可以用来报道贝叶斯统计推断的结果
  • 原假设(null hypothesis): 一种基于以下假设的模型系统:我们观测到的效应只是由偶然因素引起的
  • 单边检验(one-sided test): 一种检验类型,关注的是出现比观测到的效应更大(或小)的效应的概率
  • p值(p-value): 在原假设成立的情况下,出现我们观测到的效应的概率
  • 功效(power): 在原假设为假的情况下,检验推翻原假设的概率
  • 显著性(significant): 我们说某个效应具有统计显著性指的是这种情况不大可能是由偶然因素引起的
  • 检验统计量(test statistic): 衡量观测到的效应与原假设下期望的结果之间偏差的统计量
  • 测试集(testing set): 用做测试的数据集
  • 训练集(training set): 用做训练的数据集
  • 双边检验(two-sided test): 一种检验类型,关注的是出现比观测到的效应更大的效应的概率,不考虑正负

估计

  • 有偏性(bias): 在平均多次试验的结果后,一个估计量倾向于高估或者低估真实的参数值
  • 删失数据(censored data): 一种数据集,数据来源于某种采集方式,但是这种采集方式会系统性地排除某些数据
  • 置信区间(confidence interval): 一种参数的区间估计,以一定的概率包含待估计的参数
  • 可信区间(credible interval): 贝叶斯统计理论中的置信区间
  • 估计(estimation): 用样本信息估计分布中未知参数的过程
  • 估计量(estimator): 用于估计参数的统计量
  • 极大似然估计量(maximum likelihood estimator): 使得似然函数最大化的估计
  • 均方误差(mean squared error): 一种衡量估计误差的值
  • 点估计(point estimate): 用单一的值估计某个参数

相关性

  • 确定系数(coefficient of determination): 衡量模型拟合结果好坏的指标
  • 对照组(control group): 对照试验中没有接受处理的组,或受到已知效应处理的组
  • 相关性(correlation): 对两个变量关系的一种描述
  • 协方差(covariance): 衡量两个变量变化方向是否一致的统计量
  • 因变量(dependent variable): 我们想要解释或者预测的变量
  • 自变量(independent variable): 用于预测因变量的变量,也称解释变量
  • 最小二乘拟合(least squares fit): 最小化残差平方和的数据拟合方法
  • 自然试验(natural experiment): 一种试验设计的方法,就是利用自然形成的界限将受试者分成几个分组,并且大体上使得分组结果接近随机分组
  • 归一化(normalize): 将一组数据进行转换,使其均值为 0,方差为 1
  • 随机对照试验(randomized controlled trial): 一种试验设计的方法,将受试者随机分成几个分组,并对不同的分组实施不同的处理
  • 秩(rank): 将一个序列按大小排序后,序列中的某个元素所处的位置
  • 残差(residual): 衡量模型预测结果与真实值离差的值
  • 标准分数(standard score): 归一化后的值
  • 处理(treatment): 对照试验中对一个分组所做的干预或改变

推荐书籍

  • Statistics for business and economics
  • Data Mining: concepts and technologies
  • 数据挖掘导论
  • Python for Data Analysis
  • Web Analysis
  • 深入浅出数据分析
  • 增长黑客
  • 网站分析实战
  • 精益数据分析
  • 统计陷阱
  • 统计思维:程序员数学之概率统计

试一试

  1. 找个朋友问一下蒙提霍尔问题,看看最后你能解释清楚没有
  2. 试着用概率统计的思维去观察一下,有没有什么新发现?

总结

这一讲我们简单了解了数据挖掘的基础知识,下一讲会简要介绍数据挖掘的基本流程和各个组件的功能。

捧个钱场?