概率分布函数

Intro

“Jingle bells, jingle bells, jingle all the way….”

传说北极圈住着一个老人,会在圣诞节前夜为好孩子专门送上礼物。

但今年他貌似遇到了些问题。what? %>_<%

这是kaggle上一个赛题的背景,由于精灵误操作数据库,导致所有礼物对应的重量信息丢失了。在不能重新称重所有礼物的前提下,如何估计礼物重量,从而将礼物更合适地装入包裹中。

概率分布

已知礼物(gift)分为9类,共1000个包裹(bag),每个包裹要满足三个条件:

  • 每个包裹的总重量不超过50磅,超过的话,该包裹不计入总数
  • 每个礼物只能使用一次
  • 每个包裹必须有3个或3个以上的礼物

虽然丢失了礼物的重量信息,但幸运的是,已知每类礼物重量的概率分布。可以根据已知的概率分布来推算每个礼物的重量。

具体如下表:

type num distribution
horse 1000 \( N(5, 2) \)
ball 1100 \( 1 + N(1,0.3) \)
bike 500 \( N(20,10) \)
train 1000 \( N(10,5) \)
coal 166 \(47 * beta(0.5,0.5) \)
book 1200 \(chisquare(2) \)
doll 1000 \(gamma(5,1) \)
block 1000 \(triangular(5,10,20)\)
gloves 200 3.0 + rand(0,1) if rand(0,1) < 0.3 else rand(0,1)

下面介绍一下几个概率分布函数。

1. 正态分布(Normal distribution)

又名高斯分布。正态曲线呈钟型,两头低,中间高,左右对称,又称之为钟型曲线。

若随机变量X服从一个数学期望为\( \mu \)(位置)、方差为\( \sigma^2 \)(幅度)的正态分布,记为\( N(\mu, \sigma^2) \)。该图形有3个特征,集中性(均数位于中央);对称性;均匀变动性。

2. 二项分布(Binomial distribution)

重复n次独立的伯努利实验,每次实验只有两种可能的结果,其发生与否互相对立且独立。当实验次数为1时,二项分布服从0-1分布。

举个例子,抛硬币正面向上的概率为0.5,抛N次,正面朝上发生K次的概率是服从二项分布的。

3. 贝塔分布(Beta distribution)

可以看作一个概率的概率分布。

对于抛硬币,可以很准确知道正面朝上(系统成功)的概率为0.5,但通常情况下,系统成功的概率p是未知的。

为了测试系统成功的概率p,进行n次实验,统计成功次数为k,于是很直观计算出p=k/n。但由于系统成功的概率是未知的,计算出的p只是真实概率的一个最佳估计。这时p也是一个随机变量,它符合beta分布。

4. 卡方分布(chi-square distribution)

若n个相互独立的随机变量,均服从标准正态分布,则这n个服从标准正态分布的随机变量的平方和构成一新的随机变量,其分布规律称为卡方分布。

卡方分布是由正态分布构造而成的一个新的分布。当n很大时,近似为正态分布。

5. Gamma分布

\(\alpha\)表示事件发生的次数,\(\beta\)表示该事件发生一次的概率,那么gamma分布代表这一事件发生\(\alpha\)次所需要时间的分布。

6. 三角分布

如其名,其概率密度函数是一个三角形状的。

numpy.random.triangular(left, mode, right)

leftright分别为左右边界,mode是峰顶。