基于python/scipy学习概率统计(1):均匀分布(Uniform Distribution) |
您所在的位置:网站首页 › 均匀分布的表达式是什么意思 › 基于python/scipy学习概率统计(1):均匀分布(Uniform Distribution) |
目录 1. 前言 2. 均匀分布 Uniform Distribution 2.1 统计特征 2.2 概率密度函数 2.3 随机采样实验 2.4 其它常用函数 1. 前言本系列借助scipy.stats模块对机器学习中常用的概率统计基础知识进行基于实验的学习。 这第一篇先从最简单的均匀分布(uniform distribution)。 以下的代码示例假定在Jupyter notebook中运行,并且缺省地先进行了以下必要的包的导入。 import random import numpy as np %matplotlib inline from matplotlib import pyplot as plt 2. 均匀分布 Uniform Distribution均匀分布可能是最简单的分布之一了。 连续均匀分布的概率密度函数(pdf: probability density function)如下所示: 对于遵循离散均匀分布的随机变量X来说有K个取值,每种取值的概率相等,均为1/K,即: 机器学习中最常用的随机变量的统计特征为均值(mean, 一阶原点矩),方差(variance, 二阶中心矩, 方差的平方根称为标准差:standard deviation),偏度(skewness, 三阶中心矩,也称倾斜度),峰度(kurtosis, 四阶中心矩)。 对于标准的连续均匀分布(对应于以上定义式中a = 0, b = 1),这4个常用统计特征定义分别为: 用以下代码来看看标准的连续均匀分布的统计特征与以上理论值是否吻合: from scipy.stats import uniform mean, var, skew, kurt = uniform.stats(moments='mvsk') print(mean, var, skew, kurt)输出结果:0.5 0.08333333333333333 0.0 -1.2 前三个是吻合的,然而第4个(Kurtosis)是"-1.2"。。。有点方,发生了什么?让我品一品^-^ 非标准的连续均匀分布是什么情况呢? rv_uniform = uniform(10,40) mean, var, skew, kurt = rv_uniform.stats(moments='mvsk') print(mean, var, skew, kurt)输出结果:30.0 133.33333333333331 0.0 -1.2 均值和方差随(a,b)变化而变化,Skewness总是等于0,这个符合预期。Kurtosis仍然是"-1.2",问题同上。。。有没有人能告诉我为什么,在线等^-^ [2021-10-13] scipy.stats中的Kurtosis是采用以下定义(至于为什么这样的定义另文解释): 对于标准的区间[0,1]的均匀分布来说,将 进一步,也可以证明 以下代码中调用函数pdf()给出了三种参数条件下的连续均匀分布的概率密度曲线图。 pdf()的第一个参数指定采样点,第二个参数和三个参数用于指定区间,但是要注意其指定方式,第二个参数对应于a,而“第二个参数与第三个参数之和”对应于b。换句话说,第二个参数指定区间起点,第三个参数指定区间宽度。 x = np.linspace(-12,12,100) plt.plot(x, uniform.pdf(x),'r-', lw=3, alpha=1.0, label='standard uniform pdf') plt.plot(x, uniform.pdf(x,-5,10),'r-', lw=3, alpha=0.6, label='uniform[-0.5,1.5] pdf') plt.plot(x, uniform.pdf(x,-10,20),'r-', lw=3, alpha=0.6, label='uniform[-10,10] pdf') plt.legend()可以看出,在区间(a,b)范围内的概率密度值与区间(a,b)的宽度成反比,符合预期。 当然,也可以自己写一个函数来计算这个pdf以验证理解是否正确,如下所示: def my_uniform_pdf(x, a, b): y = [1 / (b - a) if a |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |