本文实例讲述了Python实现的各种常见分布算法。分享给大家供大家参考,具体如下:

#-*- encoding:utf-8 -*-

import numpy as np

from scipy import stats

import matplotlib.pyplot as plt

#####################

#二项分布

#####################

def test_binom_pmf():

'''

为离散分布

二项分布的例子:抛掷10次硬币,恰好两次正面朝上的概率是多少?

'''

n = 10#独立实验次数

p = 0.5#每次正面朝上概率

k = np.arange(0,11)#0-10次正面朝上概率

binomial = stats.binom.pmf(k,n,p)

print binomial#概率和为1

print sum(binomial)

print binomial[2]

plt.plot(k, binomial,'o-')

plt.title('Binomial: n=%i , p=%.2f' % (n,p),fontsize=15)

plt.xlabel('Number of successes')

plt.ylabel('Probability of success',fontsize=15)

plt.show()

def test_binom_rvs():

'''

为离散分布

使用.rvs函数模拟一个二项随机变量,其中参数size指定你要进行模拟的次数。我让Python返回10000个参数为n和p的二项式随机变量

进行10000次实验,每次抛10次硬币,统计有几次正面朝上,最后统计每次实验正面朝上的次数

'''

binom_sim = data = stats.binom.rvs(n=10,p=0.3,size=10000)

print len(binom_sim)

print "mean: %g" % np.mean(binom_sim)

print "SD: %g" % np.std(binom_sim,ddof=1)

plt.hist(binom_sim,bins=10,normed=True)

plt.xlabel('x')

plt.ylabel('density')

plt.show()

#####################

#泊松分布

#####################

def test_poisson_pmf():

'''

泊松分布的例子:已知某路口发生事故的比率是每天2次,那么在此处一天内发生4次事故的概率是多少?

泊松分布的输出是一个数列,包含了发生0次、1次、2次,直到10次事故的概率。

'''

rate = 2

n = np.arange(0,10)

y = stats.poisson.pmf(n,rate)

print y

plt.plot(n, y, 'o-')

plt.title('Poisson: rate=%i' % (rate), fontsize=15)

plt.xlabel('Number of accidents')

plt.ylabel('Probability of number accidents', fontsize=15)

plt.show()

def test_poisson_rvs():

'''

模拟1000个服从泊松分布的随机变量

'''

data = stats.poisson.rvs(mu=2, loc=0, size=1000)

print "mean: %g" % np.mean(data)

print "SD: %g" % np.std(data, ddof=1)

rate = 2

n = np.arange(0,10)

y = stats.poisson.rvs(n,rate)

print y

plt.plot(n, y, 'o-')

plt.title('Poisson: rate=%i' % (rate), fontsize=15)

plt.xlabel('Number of accidents')

plt.ylabel('Probability of number accidents', fontsize=15)

plt.show()

#####################

#正态分布

#####################

def test_norm_pmf():

'''

正态分布是一种连续分布,其函数可以在实线上的任何地方取值。

正态分布由两个参数描述:分布的平均值μ和方差σ2 。

'''

mu = 0#mean

sigma = 1#standard deviation

x = np.arange(-5,5,0.1)

y = stats.norm.pdf(x,0,1)

print y

plt.plot(x, y)

plt.title('Normal: $\mu$=%.1f, $\sigma^2$=%.1f' % (mu,sigma))

plt.xlabel('x')

plt.ylabel('Probability density', fontsize=15)

plt.show()

#####################

#beta分布

#####################

def test_beta_pmf():

'''

β分布是一个取值在 [0, 1] 之间的连续分布,它由两个形态参数α和β的取值所刻画。

β分布的形状取决于α和β的值。贝叶斯分析中大量使用了β分布。

'''

a = 0.5#

b = 0.5

x = np.arange(0.01,1,0.01)

y = stats.norm.pdf(x,a,b)

print y

plt.plot(x, y)

plt.title('Beta: a=%.1f, b=%.1f' % (a,b))

plt.xlabel('x')

plt.ylabel('Probability density', fontsize=15)

plt.show()

#####################

#指数分布(Exponential Distribution)

#####################

def test_exp():

'''

指数分布是一种连续概率分布,用于表示独立随机事件发生的时间间隔。

比如旅客进入机场的时间间隔、打进客服中心电话的时间间隔、中文维基百科新条目出现的时间间隔等等。

'''

lambd = 0.5#

x = np.arange(0,15,0.1)

y =lambd * np.exp(-lambd *x)

print y

plt.plot(x, y)

plt.title('Exponential: $\lambda$=%.2f' % (lambd))

plt.xlabel('x')

plt.ylabel('Probability density', fontsize=15)

plt.show()

def test_expon_rvs():

'''

指数分布下模拟1000个随机变量。scale参数表示λ的倒数。函数np.std中,参数ddof等于标准偏差除以 $n-1$ 的值。

'''

data = stats.expon.rvs(scale=2, size=1000)

print "mean: %g" % np.mean(data)

print "SD: %g" % np.std(data, ddof=1)

plt.hist(data, bins=20, normed=True)

plt.xlim(0,15)

plt.title('Simulating Exponential Random Variables')

plt.show()

test_expon_rvs()

测试运行结果如下:

希望本文所述对大家Python程序设计有所帮助。

python所有算法_Python实现的各种常见分布算法示例相关推荐

  1. python求伽马分布模型参数_Python实现的各种常见分布算法示例

    本文实例讲述了Python实现的各种常见分布算法.分享给大家供大家参考,具体如下: #-*- encoding:utf-8 -*- import numpy as np from scipy impo ...

  2. 希尔排序的详细过程_算法系列: 10大常见排序算法(4)希尔排序

    本课程是从少年编程网转载的课程,目标是向中学生详细介绍计算机比赛涉及的编程语言,数据结构和算法.编程学习最好使用计算机,请登陆 www.3dian14.org (免费注册,免费学习). 一句 希尔排序 ...

  3. python 预测算法_Python 与金融数据使用机器学习算法预测交易策略

    记得 关注.分享.点在看 呀- 这样您就能持续收到优质的推送啦 这一期,我们将使用上一期处理好的数据特征和标签训练机器,然后预测交易策略.我们将分别使用 K近邻算法和集成学习两种方法分别完成模型的训练 ...

  4. c语言一些算法解题技巧,c语言常见小算法的解题思路.doc

    c语言常见小算法的解题思路 判定某一年是否是闰年 闰年时间:四年一闰,百年不闰,四百年再闰.,其中 大写字母转小写字母 大写字母+32 = 小写字母 A = 65 a = 97 输入一个华氏温度,要求 ...

  5. python经典排序_python实现十大经典排序算法

    写在前面 本文参考十大经典排序算法(动图演示),这篇文章有动图显示,介绍的很详细.本文是部分内容有借鉴此博客,用python实现,有一些改进. 各种算法的时间.空间复杂度 1.冒泡排序 1.比较相邻的 ...

  6. python音频聚类_python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)

    python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan) 发布时间:2020-08-31 21:23:24

  7. python神经网络实例_Python编程实现的简单神经网络算法示例

    本文实例讲述了Python编程实现的简单神经网络算法.分享给大家供大家参考,具体如下: python实现二层神经网络 包括输入层和输出层 # -*- coding:utf-8 -*- #! pytho ...

  8. python新式类c3算法_python中的MRO和C3算法

    一. 经典类和新式类 1.python多继承 在继承关系中,python子类自动用友父类中除了私有属性外的其他所有内容.python支持多继承.一个类可以拥有多个父类 2.python2和python ...

  9. python k近邻算法_python中的k最近邻居算法示例

    python k近邻算法 K最近邻居(KNN) (K-Nearest Neighbors (KNN)) KNN is a supervised machine learning algorithm t ...

最新文章

  1. Python学习之continue
  2. JAVA变量的数据类型样例
  3. pytorch图像和张量的相互转换_如何加载图像并将其转换为PyTorch的适当张量?
  4. 【Idea无法打开】Idea.bat可以正常打开,双击快捷方式无法打开解决办法
  5. 插值法补齐缺失数据_数据挖掘非常重要的一步:数据预处理
  6. 谋而后动:解读数仓计划生成中行数估算和路径生成的奥秘
  7. chrome jsp 显示不正常_selenium+java谷歌浏览器 网站打开不正常
  8. AD16操作技巧笔记
  9. 树莓派c语言读取dht11,树莓派直接读取 DHT11 温湿度的方法
  10. Word高效指南 - 中文文档首行自动缩进2个字符
  11. kjb文件 解析_Python 之父再发文:构建一个 PEG 解析器
  12. 高德地图路径轨迹起点标点不变_竞品分析之高德地图与百度地图
  13. ‘‘红包来了—红包来了—‘‘Python制作一个微信红包提示系统。
  14. windows下部署mysql5.7.21免安装版并设置开机自启动
  15. 什么是 WPS(Wi-Fi Protected Setup)
  16. python中列表是什么样的数据结构_Python中列表、字典、元组、集合数据结构整理...
  17. 密码学入门(3):分组密码的模式
  18. 虚幻引擎中导出模型,并导入到Unity
  19. is running 8724480B beyond the ‘PHYSICAL‘ memory limit.
  20. SQL Server 表分区之水平表分区

热门文章

  1. Angular应用bootstrap时的version检测机制
  2. 一个领导力培训的游戏练习
  3. Service Request Account field in CRM and C4C
  4. research button control usage in WebIDE
  5. How is JerryMaster.view.xml being loaded in WebIDE local test environment
  6. Text determination debug
  7. 如何在AWS上架设文件服务器
  8. SAP Marketing Engagement Management
  9. 如何使用工具对SAP CRM系统的odata服务进行监控
  10. How to use Chrome HAR save HTTP performance