推荐阅读:如何理解概率分布函数和概率密度函数
文章目录
正态分布(Nomal Distribution)
import numpy as np
import matplotlib.pyplot as plt
import math
# 均值
u = 0
#标准差
sig = math.sqrt(0.2)
x = np.linspace(u - 3 * sig, u + 3 * sig, 50)
y_sig = np.exp(-(x - u) ** 2 / (2 * sig ** 2) / (math.sqrt(2 * math.pi) * sig))
plt.plot(x,y_sig,"r-",linewidth=2)
plt.grid(True)
plt.show()
正态分布概率密度函数曲线
![](https://i-blog.csdnimg.cn/blog_migrate/3c7d3c947d16ce778201a7d72183288a.png)
两点分布 /伯努利分布(Two Point Distribution)
import numpy as np
import matplotlib.pyplot as plt
p = 0.7
x = [0,1]
y = [1-p, p]
plt.scatter(x,y) # 散点图
plt.grid(True)
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/6f32b8460610f5b8cbbf2cae7b375700.png)
二项分布 (Binomial Distribution)
二项分布,即重复n次的伯努利试验,用ξ表示随机试验的结果。如果事件发生的概率是p,则不发生的概率q=1-p,N次独立重复试验中发生K次的概率是
P(ξ=K)= C(n,k) * p^k * (1-p)^(n-k),其中C(n, k) =n!/(k!(n-k)!). 那么就说这个属于二项分布。其中P称为成功概率。记作ξ~B(n,p)
期望:Eξ=np;
方差:Dξ=npq, 其中q=1-p
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import comb
p = 0.4
n = 10
x = np.linspace(0,n,n+1)
y = comb(n,x)*p**x*(1-p)**(n-x)
print(x)
print(y)
plt.scatter(x,y)
plt.grid(True)
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/8b75ae660f2b32d7627d91fb1e12ce92.png)
几何分布 (Geometric Distribution)
import numpy as np
import matplotlib.pyplot as plt
p = 0.4
n = 10
x = np.linspace(1,n,n)
y = p*(1-p)**(x-1)
print(x)
print(y)
plt.scatter(x,y)
plt.grid(True)
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/826c7cddd4f7f817ae9257de61b84258.png)
泊松分布(Possion Distribution)
import numpy as np
import matplotlib.pyplot as plt
x = np.random.poisson(lam = 5, size = 10000)
pillar = 15
a = plt.hist(x, pillar, color = 'g')
plt.plot(a[1][0:pillar], a[0],'r')
plt.grid()
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/3b73365c257451fc3787541e6d51ec42.png)
均匀分布 (Uniform Distribution)
import numpy as np
import matplotlib.pyplot as plt
a = 3
b = 5
x = np.linspace(a, b, 50)
y = []
for i in range(0,50):
y.append(1 / (b - a))
plt.plot(x,y,"r-",linewidth=2)
plt.grid(True)
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/f63344d5c7b6341683380bc1131cac75.png)
指数分布 (Exponential Distribution)
import numpy as np
import matplotlib.pyplot as plt
x = np.random.exponential(scale = 100, size = 10000)
pillar = 25
a = plt.hist(x, pillar, color = 'g')
plt.plot(a[1][0:pillar], a[0],'r')
plt.grid()
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/944a3060b1ecc182c094f085fbfb32f5.png)