如何在Python中找到概率分布
概率分布表示给定数据的各种值的预测结果。概率分布有多种形式和大小,每种都有自己的一组特征,例如均值、中值、众数、偏度、标准差、峰度等。概率分布有多种类型,让我们在本文中演示如何找到它们.
正态分布
正态分布是以均值为中心的对称概率分布,表明均值附近的数据比远离均值的数据出现的频率更高。正态分布也称为高斯分布。正态分布曲线类似于钟形曲线。在下面的示例中,我们使用生成连续随机数据的函数stats.norm() 创建正态分布数据。参数 scale 是指标准差, loc 是指平均值。 plt.distplot() 用于可视化数据。 KDE 是指核密度估计,其他参数用于自定义绘图。当我们可视化该图时,可以看到一条钟形曲线。
Python3
# import packages
import scipy.stats as stats
import seaborn as sns
import matplotlib.pyplot as plt
# generate data
data =stats.norm(scale=1, loc=0).rvs(1000)
# plotting a histogram
ax = sns.distplot(data,
bins=50,
kde=True,
color='red',
hist_kws={"linewidth": 15,'alpha':1})
ax.set(xlabel='Normal Distribution', ylabel='Frequency')
plt.show()
Python3
# import packages
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# generate data
# n== number of trials,p== probability of each trial
n, p = 10, .6
data = np.random.binomial(n, p, 10000)
# plotting a histogram
ax = sns.distplot(data,
bins=20,
kde=False,
color='red',
hist_kws={"linewidth": 15, 'alpha': 1})
ax.set(xlabel='Binomial Distribution', ylabel='Frequency')
plt.show()
Python3
# import packages
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# generate poisson data
poisson_data = np.random.poisson(lam=5, size=1000)
# plotting a histogram
ax = sns.distplot(poisson_data,
kde=False,
color='blue')
ax.set(xlabel='Poisson Distribution', ylabel='Frequency')
plt.show()
输出:
二项分布
在一组给定的因素或假设下,二项分布表示变量将采用两个结果或独立值之一的可能性。例如:实验是成功还是失败。如果问题的答案是“是”或“否”等……。 np.random.binomial() 用于生成二项式数据。 n 指的是许多轨迹,并且更喜欢每条轨迹的概率。
Python3
# import packages
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# generate data
# n== number of trials,p== probability of each trial
n, p = 10, .6
data = np.random.binomial(n, p, 10000)
# plotting a histogram
ax = sns.distplot(data,
bins=20,
kde=False,
color='red',
hist_kws={"linewidth": 15, 'alpha': 1})
ax.set(xlabel='Binomial Distribution', ylabel='Frequency')
plt.show()
输出:
泊松分布:
泊松分布是统计中使用的一种概率分布,用于说明事件在一定时间内预计会发生多少次。它也称为计数分布。 np.random.poisson函数() 用于创建毒物分布数据。 lam 指的是在给定时间范围内预期发生的次数。在这个例子中,我们可以将条件设为“如果一个学生每天学习 5 个小时,那么他每天学习 6 个小时的概率是?。
Python3
# import packages
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# generate poisson data
poisson_data = np.random.poisson(lam=5, size=1000)
# plotting a histogram
ax = sns.distplot(poisson_data,
kde=False,
color='blue')
ax.set(xlabel='Poisson Distribution', ylabel='Frequency')
plt.show()
输出: