牛!朋友圈疯传的学习资料终于整来了!

Python大本营连载栏目第六期更新!

最近超火的专栏你们有get吗?

清华大学硕士,带你七天打卡机器学习知识点,分享实战案列,小伙伴们抓紧学习起来吧~

专栏作者介绍|

前言 |当下机器学习、人工智能领域吸引了许多技术人才投身其中,数学知识繁杂的理论与思想方法是大家在学习过程中的难点,这篇专栏将机器学习涉及到的数学知识统一梳理出来,相信你可以有所收获。    

机器学习第六天分享:几何分布与几何随机变量与泊松分布及泊松随机变量

小编已经给大家整理好前五天学习内容,有不清楚的小伙伴可戳下文拿小本本记下↓↓

第一天分享内容:从概率到条件概率

第二天分享内容:(机器学习概率统计理论基石:条件概率、独立性与贝叶

第三天分享内容:事件的关系:深入理解独立性1

第四天分享内容:事件的关系:深入理解独立性2

第五天分享内容:离散型随机变量:分布与数字特征

01

几何分布与几何随机变量

6.1.几何分布的应用场景

我们在二项分布的基础上再来介绍几何分布,在连续抛掷硬币的试验中,每次抛掷出现正面的概率为pp,出现反面的概率为1-p1−p,在这种背景下,几何随机变量XX就用来表示连续抛掷硬币直到第一次出现正面所需要的抛掷次数。

或者我们再举一个庸俗直白点的例子,学校里有1010个白富美女生(假定她们互相不认识,保证独立性),你依次去找她们表白,只要有一个成功了,你就结束了单身狗的日子。

但是表白成功的概率为pp,当然,成功的概率肯定不大,但是你秉持着死皮赖脸、死缠烂打,不成功誓不罢休的精神,只要女神拒绝你的表白,就换一个女神继续表白,直到某一个女神答应你为止,那么你一共表白过的总的次数,就是几何型的随机变量。

这个逻辑是不是清晰明了

6.2.几何分布的PMF图

我们还是先绘制几何分布的PMFPMF图,方法和二项分布并无二致:

代码片段:

from scipy.stats import geom
import matplotlib.pyplot as plt
import seaborn
seaborn.set()

fig, ax = plt.subplots(2, 1)
params = [0.5, 0.25]
x = range(1, 11)

for i in range(len(params)):
    geom_rv = geom(p=params[i])
    ax[i].set_title('p={}'.format(params[i]))
    ax[i].plot(x, geom_rv.pmf(x), 'bo', ms=8)
    ax[i].vlines(x, 0, geom_rv.pmf(x), colors='b', lw=5)
    ax[i].set_xlim(0, 10)
    ax[i].set_ylim(0, 0.6)
    ax[i].set_xticks(x)
    ax[i].set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5])

plt.show()

运行结果:

6.3.采样试验和数字特征

同样的,我们进行1010万次采样试验,来观察验证一下,同时观察他的统计特征。

代码片段:

from scipy.stats import geom
import matplotlib.pyplot as plt
import seaborn
seaborn.set()
x = range(1, 21)
geom_rv = geom(p=0.5)
geom_rvs = geom_rv.rvs(size=100000)
plt.hist(geom_rvs, bins=20, normed=True)
plt.gca().axes.set_xticks(range(1,21))

mean, var, skew, kurt = geom_rv.stats(moments='mvsk')
print('mean={},var={}'.format(mean,var))
plt.show()

运行结果:    

总结一下,几何分布的期望和方差分别为:

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

V[X]=\frac{1-p}{p^2}V[X]=p21−p

02

泊松分布及泊松随机变量

7.1.泊松分布的应用场景

我们刚刚讲了,nn次独立的伯努利试验成功的次数是一个服从二项分布的随机变量,其中参数为nn和pp,期望为npnp。

我们这里看一种非常特殊的情况:就是nn非常大,pp非常小,但是期望npnp结果适中。

现实生活中有没有这类情况?

有,比如我们考虑任何一天内发生飞机事故的总数,记作随机变量XX,总共飞机飞行的次数nn非常大,但是单架次飞机出现事故的概率pp非常小。

或者用随机变量XX表示一本书中字印刷错误的次数,nn表示一本书中的总字数,非常大,而pp表示每个字印刷出错的概率,非常小。

这种情况下,nn很大pp很小,二项分布的分布列可以简化为我们这里谈到的泊松分布的分布列:

p_X(k)=e^{-\lambda}\frac{\lambda^k}{k!}pX(k)=e−λk!λk,其中,\lambda=npλ=np,k=0,1,2,...k=0,1,2,...

期望和方差满足:

E[X]=\lambdaE[X]=λ

V[X]=\lambdaV[X]=λ

特别的,当我们的n\rightarrow\inftyn→∞,且p=\lambda / n \rightarrow 0p=λ/n→0 时,对应的二项分布列:

p_X(k)=P(X=k)=\begin{pmatrix} n\\ k\end{pmatrix}p^k(1-p)^{n-k}pX(k)=P(X=k)=(nk)pk(1−p)n−k就收敛于上面的泊松分布列了。

通俗点说把,就是只要当\lambda=npλ=np,且nn非常大,pp非常小,泊松分布就是二项分布的一个非常好的近似。计算简便就是他的一个很大的优势。

7.2.泊松分布的PMF图

同样的,我们也用pythonpython代码来画一下他的PMFPMF函数图,对应的观察一下指定参数下泊松分布的分布列。

正如我们所说,泊松分布的参数就是一个\lambdaλ,我们分别绘制一个\lambda=10λ=10和\lambda=2λ=2的泊松分布PMFPMF图,并获取他们的均值和方差。

代码片段:

from scipy.stats import poisson
import matplotlib.pyplot as plt
import seaborn
seaborn.set()

fig, ax = plt.subplots(2, 1)
x = range(0, 20)
params = [10, 2]

for i in range(len(params)):
    poisson_rv = poisson(mu=params[i])
    mean, var, skew, kurt = poisson_rv.stats(moments='mvsk')
    ax[i].plot(x, poisson_rv.pmf(x), 'bo', ms=8)
ax[i].vlines(x, 0, poisson_rv.pmf(x), colors='b', lw=5)
    ax[i].set_title('$\\lambda$={}'.format(params[i]))
    ax[i].set_xticks(x)
    print('lambda={},E[X]={},V[X]={}'.format(params[i], mean, var))
    
plt.show()‍‍‍‍‍‍‍‍‍‍‍‍‍

运行结果:

lambda=10,E[X]=10.0,V[X]=10.0
lambda=2,E[X]=2.0,V[X]=2.0

同样的,我们对\lambda=2λ=2的泊松分布进行采样。

代码片段:

import numpy as np
from scipy.stats import poisson
import matplotlib.pyplot as plt
import seaborn
seaborn.set()

lambda_ = 2
data = poisson.rvs(mu=lambda_, size=100000)
plt.figure()
plt.hist(data, normed=True)
plt.gca().axes.set_xticks(range(0, 11))
print('mean=', np.mean(data))
print('var=', np.square(np.std(data)))
plt.show()

运行结果:

mean= 2.00542
var= 2.0082906236

这也是我们通过1010万次采样试验得出的统计结果,我们通过这个结果集计算了均值和方差,和模型的理论推导值是一致的。

离散型随机变量的内容就暂时到这,在下一节,我们将介绍连续型随机变量的有关内容。

本期内容学会了吗,抓紧分享小伙伴一起学习吧!

好了,本次分享的内容就到这里,感觉有收获的同学,可以滑到文章底部,帮助老师分享点赞收藏,咱们明天见!

下期预告:连续随机型变量:分布与数字特征。

注:以上内容及后续将要连续分享的内容,均来自张雨萌老师在CSDN专栏创作的《机器学习中的数学》

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

扫码下方二维码,

查看张老师更多的专栏内容

学习了解张老师的专栏内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值