购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第2讲
数据的形态描述

第1讲介绍了概率、概率分布函数、概率密度函数等, 机器学习的本质是通过数据来寻 找规律,所以分布就是描述数据形态的数学语言。 通过分布我们找到数据的规律,发现其具有的特性,然后便可以加以利用。目前已知的分布有几十种,本章主要介绍几种和机器学习相关的分布,如图2-1所示。虽然下面的分布公式看起来比较复杂,结合具体的例子以及几个分布之间的关系,希望能让大家跳出公式来看实质。

图 2-1

2.1 正态分布

正态分布(Normal Distribution)又称为高斯分布、钟形分布,是连续型随机变量中最重要的分布。世界上绝大多数的分布都属于正态分布,人的身高体重、考试成绩、降水量等都近似服从正态分布。

正态分布的形状如图2-2所示,中间高,两边低,左右对称,如同寺庙里的大钟一样,所以也称为钟形曲线。身高体重、考试成绩也都呈现这一类分布态势:大部分数据集中在某处,小部分往两端倾斜。

图 2-2

正态概率密度函数为:

μ 代表均值, σ 代表标准差,两者不同的取值将会造成不同形状的正态分布。 均值表示正态分布的左右偏移,标准差决定曲线的宽度和平坦,标准差越大,曲线越平坦。 f x )曲线下的面积(积分)是1。为什么正态分布的概率密度是这样子呢?在这里我们不进行阐述,有兴趣的同学可以去看看参考书。

一个正态分布的经验法则:正态随机变量有69.3%的值在均值加减一个标准差的范围内,95.4%的值在两个标准差内,99.7%的值在三个标准差内。

因为正态分布是如此的“正常状态”,并且其特别的概率密度函数形态,所以在机器学习中扮演着很重要的角色。

这里举一个简单的例子,我们从上面正态分布的经验法则中看到:99.7%的值在三个标准差内(±3 σ )。那么我们可以来判断给定的一个值,如果不在三个标准差内,那么这个数据大概率是异常于该分布的,也就是说可以用来判断异常值。

另外一个例子是,当知道数据是服从正态分布时,首先利用最大似然方法计算出人群最可能的身高参数 θ :( u σ ),然后就可以推测某个身高值的概率。 最大似然的方法会在第8讲中进行详细讲解。

如果数据存在多个正态分布的叠加,那么这就是接下来要讨论的高斯混合分布。

2.2 混合高斯分布

继续拿人群的身高作为例子。假设不同的三个区域A、B、C的人群身高都服从三个不同的正态分布,区域A的人群的( μ σ )为(160,5),区域B的人群的( μ σ )为(175,10),区域C的人群的( μ σ )为(190,15)。

这时如果出现一个人的身高为180cm,我们推测他来自哪个区域?一种方法是根据分布范围把此人推论为可能的区域,譬如区域B。不过更严谨、更合理的是应推算出该身高属于不同分布的概率,180cm的身高可能属于三个区域的比例分别为:属于区域A的概率是20%,属于区域B的概率是50%,属于区域C的概率是30%。

像上面这种情况,就需要用混合高斯分布(Gaussian Mixture Distribution)来进行数学描述。

混合高斯分布的数学公式如下:

x 是观察到的样本数据, μ i 是不同混合高斯分布对应的平均值和协方差(对于一维的数据序列而言,就是方差,对于多维的数据来说,就是协方差,协方差的含义我们将在第4讲中进行介绍)。 π i 是对应的系数,所有系数的和为1。

对应的混合高斯分布的概率密度曲线如图2-3所示。

图2-3显示了拥有三个高斯分量的一个维度的混合高斯分布是如何由其高斯分量叠加而成。

图 2-3

那么,为什么混合高斯分布的各个高斯分量的系数之和必须为1呢?这是因为混合高斯分布的定义本质上也是一个概率密度函数。而概率密度函数在其作用域内的积分之和必然为1。其整体的概率密度函数是由若干个高斯分量的概率密度函数线性叠加而成的,而每一个高斯分量的概率密度函数的积分必然也是1。所以,要想使混合高斯分布整体的概率密度积分为1,就必须对每一个高斯分量赋予一个值不大于1的权重,并且权重之和为1。

混合高斯分布或者对应的模型需要确定参数就比较多了,包括 π u 、∑。如果像高斯分布那样只有一个 θ :( u σ ),我们可以用最大似然算法来拟合。 现在有多个参数要求的话,就无法套用最大似然算法,这时就需要用到最大期望(Expectation Maximization,EM)算法,关于EM算法将在第9讲进行详细介绍。

相比普通的高斯分布,在混合高斯分布中,我们看到有多个高斯分布的组合,在实际应用中,我们就可以把一个高斯分布对应到一个分类中,所以混合高斯分布就可以对应到多个分类中,也就是说混合高斯分布可以在多分类的任务中应用。

2.3 伯努利分布及二项分布

伯努利分布(Bernoulli Distribution)和二项分布(Binomial Distribution)的研究对于解决二分类问题是很有意义的。

伯努利分布是以其发明者瑞典数学家Jacques Bernoulli的名字命名的。其内容就是假如有一个1元硬币,经过独立的重复实验,也就是每一次投掷硬币,看它的结果是国徽面还是数字面(假设是人民币),并且后面一次的投掷和前一次投掷没有任何关系,也就是不能投了国徽面后下一次就需要根据这个面作为一个附件的条件来投下一次。这样投掷无数次后,可得到总体上投国徽面和数字面的概率。如果国徽面的概率是 p 的话,那么数字面就是1- p 如图2-4所示。这个方法可以推广到所有只有两个结果的场景下,只要0、1结果的概率加起来是1,那么用一个数学公式来表示的两个事件的概率函数就是伯努利分布函数。

图 2-4

下面正式定义一下伯努利分布的数学表达: 如果随机试验仅有两个可能的结果,这两个结果可以用0和1表示,此时随机变量 X 将是一个0或1的变量,其分布是单个二值随机变量的分布,称为伯努利分布。

p 是随机变量 X 等于1的概率,可以表示为 P X =1)= p P X =0)=1- p 。用一个公式来表示就是:

P X=i =p i × (1 -p 1 i i= 0,1

可以看到,如果 i =0,那么 P X =0)= p 0 ×(1- p 1-0 =1- p

如果 i =1,那么 P X =1)= p 1 ×(1- p 1-1 p

知道了二元结果的概率分布,现在接下来还是以投掷硬币作为例子,如图2-5所示。如果想知道在投了 n 次后,出现国徽面的次数等于 x 的概率会是多少呢?这个就是二项分布。二项分布建立在伯努利分布的基础上,伯努利分布是某个二值事件结果的概率,二项分布是某个二值事件中的一个出现多少次的分布。

图 2-5

正式定义: 二项分布是指在只有两个结果的 n 次独立的伯努利试验中,所期望的结果出现次数的概率。

以例子说明:假设投掷一枚硬币,出现国徽面(正面)和数字面(反面)的概率各为0.5,那么投掷1次,出现正面的概率肯定是0.5。投掷2次、3次呢?投掷2次出现的结果有4个:正正、正反、反正、反反。因为 p =0.5,所以每个结果出现的概率是0.5×0.5=1/4=0.25,而出现正面2次的只有都是“正正”这种情况,占总比的1/4=0.25,出现正面1次的概率是“正反、反正”,占比是2/4=0.5,出现正面是0次只有“反反”这种情况,因此占比是1/4= 0. 25。

投掷3次出现的结果有8个,正正正、正正反、正反正、正反反、反正正、反正反、反反正、反反反。统计正面出现3次、2次、1次、0次的概率分别是1/8=0.125、3/8=0.375、3/8=0.375、1/8=0.125。

用一个公式来表示概率分布:

其中, b 表示二项分布的概率; n 表示试验次数; x 表示出现某个结果的次数, P X =1)= p P X =0)= q p q =1。 大家可以发现,二项分布函数和伯努利分布函数形式还是挺相似的。实际上如果只考虑前面 x 次出现正面的结果,那么其概率就是前面 x 次每次是正面概率乘以后面 n x 次都失败概率的乘积,从而是 p x q n x ,而把所有出现 x 次正面的情况考虑进去,就需要乘以一个排列组合函数,也就是 ,表示在 n 次试验中出现 x 次结果的可能的次数(不考虑顺序)。如10次试验,出现0次正面的次数有1次,出现1次正面的次数有10次……出现5次正面的次数有252次,等等。其计算也有一个通式:

简化一下:

从二项分布的概率分布函数可知,概率分布只与试验次数 n 和成功概率 p 有关, p 越接近0.5,二项分布将越对称。保持二项分布试验的次数 n 不变,随着成功概率 p 逐渐接近0.5,二项分布逐渐对称,且近似于均值为 n × p 、方差为 n × p ×(1- p )的正态分布,所以为了简化计算,在 n × p >5时,一般就用正态分布去近似计算二项分布。不同的 p n 情况下的二项式分布曲线如图2-6所示。

图 2-6

最左边是 p =0.3, n =20的概率密度函数曲线图形,期望值是 n × p =6,中间的曲线是 p =0.7, n =20,也就是期望值是14,右边的曲线是 p =0.5, n =40,其期望值是20。可以发现几条曲线和正态分布挺相似。

二项分布是针对二分类事件次数的概率分布,如果把二分类扩展到多分类,那么就从二项分布扩展到了多项分布。多分类在机器学习里面是一个常见问题。

2.4 泊松分布

泊松分布(Poisson Distribution)是法国数学家西莫恩·德尼·泊松(Simeon-Denis Poisson)建立的。

在现实生活中,经常需要去解决类似以下的问题:

· 预测或者估计一段时间内发生交通事故的次数;

· 一批产品中出现瑕疵产品的数量;

· 商店中某件不太被频繁购买物品的备货数量。

以上这些问题一般具有以下几个特征或者前提条件:

(1) X 是在一个区间(时间、空间、长度、面积、部件、整机等)内发生特定事件的 次数 ,其取值为0,1,2,…, n

(2)一个事件的发生不影响其他事件的发生,没有相互间的依赖,即 事件独立发生

(3)事件的 发生概率是相同的 ,不能有些区间内发生的概率高一些而另一些区间的概率却低一些。

(4)两个事件 不能在同一个时刻发生

(5)一个区间内一个事件发生的 概率与区间的大小成比例

满足以上条件,则 X 就是泊松随机变量,其分布就是泊松分布。 泊松分布就是描述某段时间内,事件的发生概率。

泊松分布的概率为:

其中, λ >0是常数,是指定区间事件发生的频率(不是概率), x 是事件数量。

假设某公司有一个不稳定的Web系统,如图2-7所示,每周平均的故障次数是2次,那么在下周不发生故障的概率是多少?

图 2-7

每周平均的故障次数是2次,我们可以把“一周”看作单位时间,系统的故障率是 λ =2,单位时间内发生故障的次数 X 符合泊松分布 X ~Poisson( λ )。在下周不发生故障的概率相当于发生了0次故障的概率为:

现在如果要判断接下去的两周不发生故障的概率是多少呢?这时有以下两种计算方法。

第一种方法是把一周没有故障的概率相乘:

P X =0)× P X =0)=e -2 ×e -2 =e -4

另外一种方法是根据泊松分布的概率公式进行计算,此时因为事件变成了两周,所以 λ =2×2=4:

以上两种计算方法的结果是一致的。

根据上面的例子可以看到,泊松分布是一种描述和分析稀有事件的概率分布。要观察到这类事件,样本含量 n 一般必须很大。泊松分布还有一个很好的性质,那就是区间的线性倍数对应的事件发生的概率也是倍数。

也正因为其概率和区间的线性关系,而且一般事件发生的频率不高,所以把时间减小到一定区间后,就变成了这样一个对等的问题:发生交通事故的频度是 λ ,而且这个值比较小(如万分之一),请问事故会不会发生?发生几次?也就是将该问题变成是一个二项分布问题。

我们用一个简单的数学推导来看一看这个近似等价的关系(只是看着有点复杂,其实还是很简单的推导)。这里假设 λ n × p ,当 n 趋向无穷大, p 就趋向于0,那么代入二项分布函数:

e是自然常数,其定义是:

代入上面的公式:

通过e和二项分布,再做一些假设条件之后,两者是近乎等价的!

e实际的含义在这里再强调一下。譬如存1元钱到银行时,银行需要付利息,假设总体利率是100%,但是这个100%不是到期后算一次,而是要求每天算一次,并且要求能利滚利。假设现在这笔钱约定存 n 天,那么每天的利息就是1/ n ,每天的本息加起来就是 ,经过 n 天后的最终本息就是 。再假设 n 是无穷大,那么最终的极限值算出来就是自然常数e。 为什么称为自然常数呢,因为类似这样的情况在自然界里面是一个经常发生的现象,故把e称为自然常数, 而我们经常使用的2、8、10、12、16等数字更多的是为了解决问题以及计算方便而设计出来的,不是“自然”产生的。

2.5 指数分布

上面的泊松分布是一种描述和分析稀有事件的概率分布。在现实问题解决中,还有一类问题是需要去找到发生某种事件之间的间隔时间。比如系统出现缺陷的时间间隔、婴儿出生的时间间隔、旅客进入机场的时间间隔、打进客服中心电话的时间间隔等。 指数分布(Exponential Distribution)就是用来表示独立随机事件发生时间间隔的概率分布。 把指数分布和泊松分布放在一起,说明两者是有比较密切关系的,如图2-8所示。

图 2-8

上一节里面的预测故障的例子中,按照时间把故障频度进行调整后代入泊松分布公式就可以知道任意时间区间内发生事件的概率。即设定时间为 t ,那么发生频度为 λt ,因为在时间 t 内发生故障的概率和时间 t 内不发生概率加起来是1,因此可以表示为下面的公式:

P T t λt )=1- P X =0; λt )=1-e λt

现在把 T 换成 X t 替换成 x

F x λ )= P X x λx )=1-e λx

这里的 F x λ )就是指数分布的分布函数, λ 表示平均每单位时间内事件发生的次数,随机变量 X 表示时间间隔。

指数分布的一个重要特征是无记忆性(Memory-less Property),又称遗失记忆性。如果一个随机变量呈指数分布 X ~ F λ ),当 s t ≥0时:

也就是:

这个结论告诉我们,在指数分布下, P { X s t }和 P { X s }对应的面积的比值等于 P { X t }对应的面积和总体面积的比值( A 表示区域)(见图2-9):

从图2-9可以看到,无论 s 取什么值, s t 时的概率和 s 时刻的概率比值都是一样的。

图 2-9

拿一个具体的例子来说,假设在牌桌上只能押大或押小,在连续押小输掉10次的条件下,下一次出现“大”和第1次就出现“大”的概率相同。 对于玩家来说,每一局都是全新的,下一次赢钱的概率和之前的输赢没有任何关系,这就是所谓的无记忆性。

指数分布在机器学习中,可以用来预测某个事件或者状态(如故障发生)的时间间隔,这样可以让我们提前做出安排以减少损失。

2.6 幂律分布

幂律分布(Power Law Distribution)也称为长尾分布,著名的Zipf定律和Pareto定律(二八定律)也是幂律分布的简单形式。 详细解释大家可以参见百科。

在互联网中,大量现象服从幂律分布。例如一个网上书店图书的销售数量服从幂律分布,电商网站上产品的销售数量也服从幂律分布。在现实中,收入和人口数量之间的分布也是幂律分布,国家GDP收入按照区域数量来分也是幂律分布。

其对应的概率密度函数为:

f x )= cx r c r 均为大于零的常数,幂律分布图形如图2-10所示。

大家可能会发现,幂律分布图形和指数函数挺像的。那么如何区分呢?我们针对幂律函数两边取对数,转换为下面的形式:

ln f x )=ln c r ln x

y′ =ln f x ), x′ =ln x ,将其转换为: y′ c x′ ,其对应的图形是一条直线。有时根据数据画出图形后无法确定是幂律分布还是指数分布时,可以对数据两边进行log-log运算,再转换为图形。如果图形基本是一条直线(线性函数),那么就可以基本确定为幂律分布而非指数分布。

图 2-10

2.7 以上分布的总结和联系

讲到这里,我们就可以把正态分布、二项分布、泊松分布、指数分布联系在一起了。

(1)作为“正常形态”的分布,正态分布是最常见、最基础的分布。

(2)伯努利分布用来表示结果的两种可能(0/1,正/反,对/错等)发生的概率。

(3)二项分布是结果是两种可能事件发生 n 次后,其中某种结果出现 x 次的概率分布。

(4)泊松分布是用来计算在某一种事件发生频率确定的情况下,一段区间内发生次数的概率,一般这里要求事件本身发生的概率不是很大。

(5)在当事件发生次数 n 很大而事件发生概率 p 很小时,在没有计算机时,二项分布的计算非常麻烦,而用泊松分布来近似计算则可以降低大量的计算量。可以用 λ n × p 来获得 λ ,然后通过泊松分布来计算。

(6)当二项分布中的 p 接近0.5时,它和正态分布就很近似,而 n 越大,就越接近。

(7)当 λ ≥20时,泊松分布可以用正态分布来近似;当 λ ≥50,泊松分布基本上就等于正态分布了。

(8)指数分布是通过泊松分布推导而得到的,泊松分布是用来计算某个区间内发生事件次数的概率,指数分布是用来计算某种事件发生的间隔时间。

(9)幂律分布和指数分布在图形上很接近,但是经过log-log运算处理后,幂律分布便是一条直线。社会上很多现象都可以对应到幂律分布上。

2.8 本讲小结

本讲几种典型的分布对于解决实际问题具有非常重要的意义。当对不同分布的含义理解了之后,那么解决实际问题的方向也就正确了。还有一个主要的分布是贝塔分布,将在本书后面的强化学习章节中再针对性地进行介绍。 ScRlMwA/XBhWg4V3Pyp/WHIxac9dhQCPGen5A4hU5KjiTVu3O26wCDvtxARDUxnU

点击中间区域
呼出菜单
上一章
目录
下一章
×