关于机器学习:实例复习机器学习数学-2-几种典型离散随机变量分布

54次阅读

共计 6184 个字符,预计需要花费 16 分钟才能阅读完成。

随机变量的引入

上一节咱们探讨的都是随机事件,某一个随机事件可能蕴含若干个随机试验 样本空间 中的 随机后果 ,如果对于每一个可能的试验后果都关联一个特定的值,这样就造成了一个 随机变量

例如抛一个骰子,将抛出的骰子的值作为随机变量的值;足球比赛,将某一只球队进球的个数作为随机变量的值;抛一根标枪,抛出的间隔作为随机变量的值;往年一年的降水量作为随机变量等等。

离散型随机变量相干概念

随机变量 的取值并不是间断的,而是无限个数值,或者是能够计数的有限个数值,这样的随机变量被称为 离散随机变量 。回顾一下下面提出的四个例子,投一个骰子,将抛出的骰子的值作为随机变量的值,这些值只可能是 1,2,3,4,5,6,所以是离散随机变量散布;足球比赛,将某一只球队进球的个数作为随机变量的值,这个进球数可能是有限个,只不过数值很大的时候概率很低而已,这也是离散随机变量散布。然而对于抛一根标枪,抛出的间隔作为随机变量的值和往年一年的降水量作为随机变量这些是无奈计数的,被称为 间断随机变量

对于离散随机变量,搞清楚每个值的概率也是很重要的,将随机变量的每个值映射到其概率上,这就是 概率品质函数(PMF). 记随机变量为 $X$,PMF 为 $P(X=k)$。接下来,咱们就来具体阐明几种典型的随机变量以及其概率品质函数。

只有两种可能的屡次试验散布 – 二项分布

咱们有如下几个例子:

  • 射门 n 次,假如进球概率为 $p$,每次射门彼此之间都是互相独立的,随机变量 $X$ 对应 n 次射门进球的次数。
  • 投一个硬币 n 次,假如侧面朝上的概率为 $p$,每次抛掷彼此之间都是互相独立的,随机变量 $X$ 对应 n 次抛掷失去的是侧面的次数。
  • 坐某个航班的飞机,假如准点达到的概率为 $p$,每次这个航班达到彼此之间都是互相独立的,随机变量 $X$ 对应 n 次航班准点的次数。

以上这些例子中,都能够了解为在同样的条件下反复地、互相独立地进行的一种随机试验,其特点是该随机试验只有两种可能:产生或者不产生。咱们假如该项试验独立反复地进行了 n 次,那么就称这一系列反复独立的随机试验为 n 重伯努利试验 。n 重伯努利试验后果的散布就是 二项分布

二项分布的 PMF为:

$$
P(X = k) = C_n^kp^k(1-p)^{n-k}
$$

依据 PMF 推导冀望与方差,假如伯努利试验的随机变量只有两个值 0(不产生),1(产生),那么 n 次试验的冀望为:

$$
E[X] = 1C_n^1p(1-p)^{n-1} + 2C_n^2p^2(1-p)^{n-2} + … + (n-1)C_n^{n-1}p^{n-1}(1-p) + nC_n^np^{n}
$$

依据 $kC_n^k = nC_{n-1}^{k-1}$,则有:

$$
E[X] = nC_{n-1}^0p(1-p)^{n-1} + nC_{n-1}^1p^2(1-p)^{n-2} + … + nC_{n-1}^{n-2}p^{n-1}(1-p) + nC_n^np^{n}
$$

$$
= np(C_{n-1}^0(1-p)^{n-1} + C_{n-1}^1p^1(1-p)^{n-2} + … + C_{n-1}^{n-2}p^{n-2}(1-p) + C_n^np^{n-1})
$$

$$
= np\sum_{k=0}^{n-1}C_{n-1}^{n-1-k}p^k(1-p)^{n-1-k}
$$

依据 $(p+q)^n = C_n^0p^nq^0 + C_n^1p^{n-1}q^{1} +… + C_n^{n-1}p^{1}q^{n-1} + C_n^np^0q^n = \sum_{k=0}^{n}C_{n}^{n-k}p^{n-k}q^k $,则有:

$$
E[X] = np(1-p + p)^{n-1} = np
$$

n 次试验的方差为:

$$
D[X] = E(X – E[X])^2 = E[X^2 – 2xE[X] + E[X]^2] = E[X^2] – 2E[X]E[X] + E[X]^2 = E[X^2] – E[X]^2
$$

其中 $E[X^2]$ 为

$$
E[X^2] = 1^2C_n^1p(1-p)^{n-1} + 2^2C_n^2p^2(1-p)^{n-2} + … + (n-1)^2C_n^{n-1}p^{n-1}(1-p) + n^2C_n^np^{n}
$$

$$
= \sum_{k=0}^{n}k^2C_n^kp^k(1-p)^{n-k}
$$

依据 $k^2C_n^k = knC_{n-1}^{k-1} = (k – 1 + 1)nC_{n-1}^{k-1} = n(k – 1)C_{n-1}^{k-1} + nC_{n-1}^{k-1} = n(n-1)C_{n-2}^{k-2} + nC_{n-1}^{k-1}$,则有:

$$
E[X^2] = n(n-1)\sum_{k=0}^{n}C_{n-2}^{k-2}p^k(1-p)^{n-k} + n\sum_{k=0}^{n}C_{n-1}^{k-1}p^k(1-p)^{n-k}
$$

设 $k + j = n$,则有:

$$
E[X^2] = n(n-1)\sum_{j=0}^{n}C_{n-2}^{n-j-2}p^{n-j}(1-p)^{j} + n\sum_{j=0}^{n}C_{n-1}^{n-j-1}p^{n-j}(1-p)^{j}
$$

$$
=n(n-1)p^2\sum_{j=0}^{n}C_{n-2}^{n-j-2}p^{n-j-2}(1-p)^{j} + np\sum_{j=0}^{n}C_{n-1}^{n-j-1}p^{n-j-1}(1-p)^{j}
$$

$$
=n(n-1)p^2(p+1-p)^{n-2} + np(p+1-p)^{n-1} = n(n-1)p^2 + np
$$

则:

$$
E[X^2] – E[X]^2 = n(n-1)p^2 + np – n^2p^2 = n^2p^2 – np^2 + np – n^2p^2 = np – np^2 = np(1-p)
$$

接下来咱们通过一个小程序来直观感触下二项分布:

from scipy.stats import binom
import matplotlib.pyplot as plt
import numpy as np
import seaborn
#我集体比拟喜爱这个主题
seaborn.set_style("whitegrid")
#应用内置库 binom 模仿 n = 10, p = 0.3 的状况,随机 100000 次
binom_sim = data = binom.rvs(n=10, p=0.3, size=100000)
#计算本次平均值以及标准差
print ("Mean: %g" % np.mean(binom_sim))
print ("Std: %g" % np.std(binom_sim, ddof=1))
#绘图,利用归一化的直方图,这样展现的很靠近概率品质函数
plt.hist(binom_sim, bins=10, density=True, stacked=True)
plt.show()

能够看到输入为:

能够看到平均值很靠近冀望,标准差也是很靠近咱们用公式算进去的方差开根。

产生概率与试验次数相比很小的二项分布 – 泊松散布

当 n 比拟大,p 比拟小的时候,二项分布能够近似为 泊松散布

由此能够推导出,泊松散布的冀望方差为:

$$
E[X] = np = \lambda
$$

$$
D[X] = np(1-p) = np * 1 = np = \lambda
$$

泊松散布的 PMF 为:

$$
P(X = k) = \lim_{n \to \infty, p \to 0}C_n^kp^k(1-p)^{n-k} = \lim_{n \to \infty, p \to 0} \frac{n(n-1)…(n-k+1)}{k!}p^k(1-p)^(n-k)
$$

$$
= \lim_{n \to \infty, p \to 0} \frac{n(n-1)…(n-k+1)}{k!}(\frac{\lambda/n})^k(1-\lambda/n)^(n-k)
$$

别离来看每一部分:

$$
\lim_{n \to \infty, p \to 0} \frac{n(n-1)…(n-k+1)}= n^k
$$

因为 n 趋近于无穷,所以

$$
\lim_{n \to \infty}(1+\frac{x}{n})^n=e^x
$$

所以有:

$$
\lim_{n \to \infty, p \to 0}(1-\lambda/n)^n = e^{-\lambda}
$$

最初:

$$
\lim_{n \to \infty, p \to 0}(1-\lambda/n)^k = 1^k = 1
$$

合并带入:

$$
\lim_{n \to \infty, p \to 0} \frac{n(n-1)…(n-k+1)}{k!}(\frac{\lambda/n})^k(1-\lambda/n)^(n-k)
$$

$$
= \lim_{n \to \infty, p \to 0}\frac{n^k}{k!}\frac{\lambda^k}{n^k}e^{-\lambda}
$$

$$
= \frac{\lambda^k}{k!}e^{-\lambda}
$$

为何要近似为 泊松散布 呢?在生活中咱们会依据历史数据来预测后果,同时有很多事件能够形象为泊松散布,例如:

  • 预测两只球队的胜平负后果,能够通过预测两只球队的进球状况。能够将两只球队进球概率设为 p,每次射门就是一次独立反复随机试验,那么这个试验后果应该合乎二项分布。然而,预测进球概率是很难的,然而,咱们能够通过历史数据来算进去这个球队的均匀进球数,也就是 λ。同时,进球概率绝对于射门次数来说,也是比拟小的,能够近似为泊松散布。这样,咱们就能通过泊松散布以及 λ 来计算出进 k 个球的概率。取两个球队进球数的概率分布列,计算胜平负后果的概率。
  • 预测当天飞机晚点的次数。同样的,晚点概率绝对于航班次数来说,是很小的,并且,晚点概率咱们很难预测,然而能够通过历史数据得出均匀晚点次数,形象为泊松散布就能够算出晚点次数为 k 的概率。

对于这种,揣测概率很难,然而能够通过历史数据形容其冀望的,咱们个别通过形象为泊松散布来计算它的先验概率。

接下来咱们持续通过程序模仿:

from scipy.stats import poisson
import matplotlib.pyplot as plt
import numpy as np
import seaborn
#我集体比拟喜爱这个主题
seaborn.set_style("whitegrid")
#应用内置库 poisson 模仿 λ=5 的状况,随机 10000 次
poisson_sim = poisson.rvs(mu=5, size=10000)
#计算本次平均值以及标准差
print ("Mean: %g" % np.mean(poisson_sim))
print ("Std: %g" % np.std(poisson_sim, ddof=1))
#绘图,利用归一化的直方图,这样展现的很靠近概率品质函数
plt.hist(poisson_sim, density=True, stacked=True)
plt.gca().axes.set_xticks(range(0, 11))
plt.show()

输入为:

直到事件产生为止的散布 – 几何散布

类比二项分布的例子,咱们略微做下批改:

  • 射门 n 次,假如进球概率为 $p$,每次射门彼此之间都是互相独立的,直到射门射进为止,随机变量 $X$ 对应射门进球是第几次。
  • 投一个硬币 n 次,假如侧面朝上的概率为 $p$,每次抛掷彼此之间都是互相独立的,直到抛出的硬币是侧面为止,随机变量 $X$ 对应抛掷失去的是侧面是第几次。
  • 坐某个航班的飞机,假如准点达到的概率为 $p$,每次这个航班达到彼此之间都是互相独立的,随机变量 $X$ 对应 n 次航班准点的次数。

这些随机变量的散布就是 几何散布,其 PMF 为:

$$
P(X = k) = p(1-p)^{k-1}
$$

依据 PMF 推导冀望与方差,假如伯努利试验的随机变量只有两个值 0(不产生),1(产生),那么冀望为:

$$
E[X] = p + 2p(1-p) + 3p(1-p)^2 + … + np(1-p)^{n-1}
$$

$$
(1-p)E[X] = p(1-p) + 2p(1-p)^2 + 3p(1-p)^3 + … + np(1-p)^{n}
$$

$$
E[X]-(1-p)E[X] = p + p(1-p) + p(1-p)^2 + … + p(1-p)^{n-1} – np(1-p)^{n}
$$

$$
pE[X] = p\frac{1-(1-p)^n}{1-(1-p)} – np(1-p)^n
$$

$$
E[X] = \frac{1-(1-p)^n}{1-(1-p)} – n(1-p)^n
$$

当 n 趋近于无穷的时候:

$$
E[X] = \frac{1}{p}
$$

方差为:

$$
D[X] = E[X^2] – E[X]^2
$$

$$
E[X^2] = p + 2^2p(1-p) + 3^2p(1-p)^2 + … + n^2p(1-p)^{n-1}
$$

$$
\frac{E[X^2]}{p} = 1 + 2^2(1-p) + 3^2(1-p)^2 + … + n^2(1-p)^{n-1}
$$

假如 q = 1-p,则有:

$$
\frac{E[X^2]}{1-q} = 1 + 2^2q + 3^2q^2 + … + n^2q^{n-1}
$$

依据求导公式,则有:

$$
\frac{E[X^2]}{1-q} = (q + 2q^2 + 3q^3 + … + nq^{n})’
$$

依据推导冀望的后果,能够晓得:

$$
q + 2q^2 + 3q^3 + … + nq^{n} = \frac{E(X)(q)}{1-q} = \frac{q}{(1-q)^2}
$$

依据求导公式 $[f(x)/g(x)]’=[f'(x)g(x)-f(x)g'(x)]/[g(x)]^2$,则有:

$$
\frac{E[X^2]}{1-q} = (\frac{q}{(1-q)^2})’ = \frac{(1-q)^2 – ((1-q)^2)’q}{(1-q)^4} = \frac{1-2q+q^2-(-2q + 2q^2)}{(1-q)^4} = \frac{1-q^2}{(1-q)^4} = \frac{1+q}{(1-q)^3}
$$

则:

$$
E[X^2] = \frac{1+q}{(1-q)^2} = \frac{2-p}{p^2}
$$

则:

$$
D[X] = E[X^2] – E[X]^2 = \frac{2-p}{p^2} – \frac{1}{p^2} = \frac{1-p}{p^2}
$$

接下来咱们持续通过程序模仿:

from scipy.stats import geom
import matplotlib.pyplot as plt
import numpy as np
import seaborn
#我集体比拟喜爱这个主题
seaborn.set_style("whitegrid")
#应用内置库 geom 模仿 p = 0.5 的状况,随机 100000 次
geom_rv = geom(p=0.5)
geom_sim = geom_rv.rvs(size=100000)
#计算本次平均值以及标准差
print ("Mean: %g" % np.mean(geom_sim))
print ("Std: %g" % np.std(geom_sim, ddof=1))
#绘图,利用归一化的直方图,这样展现的很靠近概率品质函数
plt.hist(geom_sim, bins=20, density=True, stacked=True)
#设置要显示的坐标值
plt.gca().axes.set_xticks(range(1,11))
plt.show()

依据公式计算出的冀望为 $\frac{1}{p}=2$,与模仿的靠近。依据公式计算出方差为 $\frac{1-p}{p^2}=2$,标准差约为 1.41421 也和模仿的靠近。

正文完
 0