- 机器学习:软件工程方法与实现
- 张春强 张和平 唐振
- 676字
- 2021-01-07 17:12:33
3.1.6 指数分布
在概率理论和统计学中,指数分布是描述泊松过程中的事件之间的时间的概率分布,即事件以恒定平均速率连续且独立地发生的过程。
指数函数的一个重要特征是无记忆性(Memoryless Property,又称遗失记忆性)。这表示如果一个随机变量呈指数分布,当s,t>0时有P(T>t+s|T>t)=P(T>s)。即,如果T是某一元件的使用寿命,已知元件使用了t小时,它总共使用至少s+t小时的条件概率,与从开始使用时算起它使用至少s小时的概率相等。指数分布的概率密度函数由式(3-6)给出:
其中λ>0是分布的一个参数,常被称为率参数(rate parameter),即每单位时间内发生某事件的次数。指数分布的随机变量X的均值和方差由下式给出。
均值:E(X)=1/λ
方差:Var(X)=(1/λ)2
以上我们对常见的数据分布做了基本的介绍,下面结合SciPy的统计函数Stats.norm来展示正态分布的概率密度函数、分布函数、分位数、随机数生成以及统计指标等,其他分布函数使用方法类似,不再赘述。
import numpy as np from scipy import stats import matplotlib.pyplot as plt #概率密度函数 返回N(mu,sigma^2)的概率密度函数在 x 处的值 pdf = stats.norm.pdf([-0.67448975,0,0.67448975],loc = 0,scale = 1) print('pdf: {}'.format(pdf) )
输出结果为:
pdf: [0.31777657 0.39894228 0.31777657] #概率分布函数 返回N(mu,sigma^2)的概率密度函数在 负无穷 到 x 上的积分,也就是概率分布函数的值 cdf = stats.norm.cdf([-0.67448975, 0, 0.67448975],loc = 0,scale = 1) print('cdf: {}'.format(cdf) )
输出结果为:
cdf: [0.25 0.5 0.75] #累计分布函数cdf的逆函数,相当于是求概率分布函数的分位数 ppf = stats.norm.ppf([0.25, 0.5, 0.75]) print('ppf: {}'.format(ppf) )
输出结果为:
ppf: [-0.67448975 0. 0.67448975] #使用ppf和np.linspace 生成数据,求pdf。绘制pdf曲线 cdf_n = np.linspace(stats.norm.ppf(0.01,loc=0,scale=1),stats.norm.ppf(0.99,loc=0,scale=1),100) plt.plot(stats.norm.pdf(cdf_n,loc=0,scale=1),'b-',label = 'norm')
输出如图3-1所示。
图3-1 pdf曲线
#绘制cdf曲线 plt.plot(cdf_n, stats.norm.cdf(cdf_n,loc=0,scale=1),'b-',label = 'norm')
输出如图3-2所示。
#rvs 生成服从指定分布的随机数,设置随机数种子random_state=1 rvs_n = stats.norm.rvs(loc = 0,scale = 1,size =10000,random_state=1) print('rvs_n: {}'.format(rvs_n))
输出结果为:
rvs_n: [ 1.62434536 -0.61175641 -0.52817175 ... -1.01414382 -0.06269623 -1.43786989] #describe 统计描述函数 describe = stats.describe(rvs_n) print('describe: {}'.format(describe))
图3-2 cdf曲线
输出结果为:
describe: DescribeResult(nobs=10000, minmax=(-3.656440099254795, 4.026849044547378), mean=0.00977265669910497, variance=0.9976729288445313, skewness=0.0249045712813166, kurtosis=0.028669537652855848)