伯努利分布 是一种离散分布,有两种可能的结果。1表示成功,出现的概率为p(其中0

概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布。

离散概率分布也称为概率质量函数(probability mass function)。离散概率分布的例子有伯努利分布(Bernoulli distribution)、二项分布(binomial distribution)、泊松分布(Poisson distribution)和几何分布(geometric distribution)等。

连续概率分布也称为概率密度函数(probability density function),它们是具有连续取值(例如一条实线上的值)的函数。正态分布(normal distribution)、指数分布(exponential distribution)和β分布(beta distribution)等都属于连续概率分布。

from scipy.stats import binom #导入伯努利分布

import matplotlib.pyplot as plt

import numpy as np

#次数

n = 10

#概率

p = 0.3

#导入特征系数

k = np.arange(0, 21)

#伯努利分布的特征值导入

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

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

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

plt.xlabel('Number of successes')

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

plt.savefig(r'C:\Users\Administrator\Desktop\106\data\textdata\12.png')

plt.show()

二项分布:离散型概率分布,n 重伯努利分布

如果随机变量序列 Xn(n=1, 2, …) 中的随机变量均服从与参数为 p 的伯努利分布,那么随机变量序列 Xn 就形成了参数为 p 的 n 重伯努利试验。例如,假定重复抛掷一枚均匀硬币 n 次,如果在第 i 次抛掷中出现正面,令 Xi=1;如果出现反面,则令 Xi=0。那么,随机变量 Xn(n=1, 2, …) 就形成了参数为 1/2 的 n 重伯努利试验。

可见,n 重伯努利试验需满足下列条件:

每次试验只有两种结果,即 X=1,或 X=0

各次试验中的事件互相独立,且 X=1 和 X=0 的概率分别为 p(0

n 重伯努利试验的结果就是 n 重伯努利分布,即二项分布。反之,当 Xn(n=1) 时,二项分布的结果服从于伯努利分布。因为二项分布实际上是进行了 n 次的伯努利分布,所以二项分布的离散型随机变量期望为 E(x)=np,方差为 D(x)=np(1-p) 。

需要注意的是,满足二项分布的样本空间有一个非常重要的性质,假设进行 n 次独立试验,满足二项分布(每次试验成功的概率为 p,失败的概率为 1−p),那么成功的次数 X 就是一个参数为 n 和 p 的二项随机变量,即满足下述公式:

P(X=k) = C(n, k) * p^k * (1-p)^(n-k)

X=k,试验 n 次,成功的次数恰好有 k 次的随机变量(事件)

C(n, k),表示从集合 n 中取出 k 个元素的组合数,结果为 n!/(k!*(n-k)!)

例如,小明参加雅思考试,每次考试的通过率 1/3,不通过率为 q=2/3。如果小明连续参加考试 4 次,那么恰好有两次通过的概率是多少?

解析:因为每次考试只有两种结果,通过或不通过,符合条件 (1);每次考试结果互相独立,且概率不变,符合条件 (2)。满足二项分布样本,代入公式求解得概率为:C(4, 2)*(1/2)^2*(2/3)^(4-2) ≈ 8/27

二项分布概率直方图:

图形特性:

当 p=q 时,图形是对称的

当 p≠q 时,图形呈偏态,pq 的偏斜方向相反

当 (n+1)p 不为整数时,二项概率 P(X=k) 在 k=(n+1)*p 时达到最大值

当 (n+1)p 为整数时,二项概率 P(X=k) 在 k=(n+1)*p 和 k=(n+1)*p-1 时达到最大值

NOTE:当 n 很大时,即使 p≠q,二项分布概率直方图的偏态也会逐渐降低,最终成为正态分布。也就是说,二项分布的极限情形即为正态分布,故当 n 很大时,二项分布的概率可用正态分布的概率作为近似值。那么 n 需要多大才可谓之大呢?

一般规定,当 pq 且 nq≥5 时,这时的 n 就足够大了,可以用正态分布的概率作为近似值。则正态分布参数 μ=np,σ^2=np(1-p) 。

二项分布:

from scipy.stats import binom

import matplotlib.pyplot as plt

import numpy as np

fig,ax = plt.subplots(1,1)

n = 100

p = 0.5

#平均值, 方差, 偏度, 峰度

mean,var,skew,kurt=binom.stats(n,p,moments='mvsk')

print(mean,var,skew,kurt)

#ppf:累积分布函数的反函数。q=0.01时,ppf就是p(X

x=np.arange(binom.ppf(0.01,n,p),binom.ppf(0.99,n,p))

ax.plot(x,binom.pmf(x,n,p),'o')

plt.rcParams['font.sans-serif']=['SimHei']

plt.title(u'二项分布概率质量函数')

plt.savefig(r'C:\Users\Administrator\Desktop\106\data\textdata\1.png')

plt.show()

补充拓展:python--scipy--1离散概率分布:伯努利分布

#导入包

#数组包

import numpy as np

#绘图包

import matplotlib.pyplot as plt

#统计计算包的统计模块

from scipy import stats

'''

arange用于生成一个等差数组,arange([start, ]stop, [step, ]

使用见文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html

'''

'''

第1步,定义随机变量:1次抛硬币

成功指正面朝上记录为1,失败指反面朝上记录为0

'''

X = np.arange(0, 2,1)

X

array([0, 1])

'''

伯努利分布官方使用文档:

https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.bernoulli.html#scipy.stats.bernoulli

'''

#第2步,#求对应分布的概率:概率质量函数 (PMF)

#它返回一个列表,列表中每个元素表示随机变量中对应值的概率

p = 0.5 # 硬币朝上的概率

pList = stats.bernoulli.pmf(X, p)

pList

array([0.5, 0.5])

#第3步,绘图

'''

plot默认绘制折线,这里我们只绘制点,所以传入下面的参数:

marker:点的形状,值o表示点为圆圈标记(circle marker)

linestyle:线条的形状,值None表示不显示连接各个点的折线

'''

plt.plot(X, pList, marker='o',linestyle='None')

'''

vlines用于绘制竖直线(vertical lines),

参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)

我们传入的X是一个数组,是给数组中的每个x坐标值绘制竖直线,

竖直线y坐标最小值是0,y坐标值最大值是对应pList中的值

官网文档:https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.vlines

'''

plt.rcParams['font.sans-serif']=['SimHei']

plt.vlines(X, 0, pList)

#x轴文本

plt.xlabel('随机变量:抛硬币1次')

#y轴文本

plt.ylabel('概率')

#标题

plt.title('伯努利分布:p=%.2f' % p)

#显示图形

plt.show()

以上这篇python 伯努利分布详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

python分布_python 伯努利分布详解相关推荐

  1. 菜鸟教程python正则表达式_python 正则表达式详解

    python 正则表达式详解 1. 正则表达式模式 模式描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾. . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字 ...

  2. python镜像下载包_python包详解

    干货大礼包!21天带你轻松学Python(文末领取更多福利) 点击查看课程视频地址 本课程来自于千锋教育在阿里云开发者社区学习中心上线课程<Python入门2020最新大课>,主讲人姜伟. ...

  3. python的继承用法_python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  4. python中search用法_Python中的python re.search方法详解

    re.search扫描整个字符串并返回第一个成功的匹配,若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个 ...

  5. python 拼音库_python有没有拼音库python进阶之socket详解

    Socket的英文原义是"孔"或"插座".作为BSD UNIX的进程通信机制,通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句 ...

  6. 信息学奥赛 python 教程_Python在信息学竞赛中的运用及Python的基本用法(详解)

    前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在<算法竞赛入门经典-训练指南>中所说的一样,如果会用 ...

  7. python 子字符串 位置_python查找子字符串位置Python变量和数据类型详解

    Python变量和数据类型 Python中数据类型 Python之print语句 Python的注释 Python中什么是变量 Python中定义字符串 Python中raw字符串与多行字符串 Pyt ...

  8. python取余还是相乘_python取余还是相乘_基于python 取余问题(%)详解

    取余的公式: 余数=除数-被除数*商 python的的余数是按照整除(向下取整)得到的商来计算的. 取余问题主要分为 : 正数与正数,负数与负数,正数与负数 ,0 正数与正数 #大数/小数:因为得出的 ...

  9. blankcount函数python,Python pandas常用函数详解

    本文研究的主要是pandas常用函数,具体介绍如下. 1 import语句 2 文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名, ...

最新文章

  1. 成为人工智能视觉应用工程师需要多久?我用了45天!
  2. 2018年人工智能将赋能所有行业,未来市场将超过400亿美元
  3. 网站服务器被攻击的形式,服务器被攻击的不同表现类型以及应对策略
  4. win10下安装ubuntu,双系统,免U盘
  5. 荣耀9“致敬”小米6?这是今年手机界最大的笑话!
  6. 研发管理三部曲——贰 · 研发管理应该干什么
  7. 【matlab】GPU 显卡版本与计算能力(compute capability)兼容性问题
  8. Linux学习笔记--终端命令
  9. HTTP:一次完整的HTTP服务过程
  10. 社区团购微信小程序开发
  11. CAD如何绘制带有弧形的箭头
  12. WPF 委托和事件实现子窗口回调函数, 实时刷新主窗口控件
  13. 如何将最大化互信息引入到无监督域适应(UDA)任务?
  14. 前端炫酷登录页,拿来就能用
  15. JS前端加密、JAVA后端解密详解
  16. Python编写程序求解一元二次方程,打印九九乘法表,判断三条边是否可以构成三角形,并求三角形面积
  17. Android常用的数据结构
  18. c语言之文件存储通版讯录
  19. WebClient基本使用
  20. 小张学算法之音视频算法:2.jpeg图像压缩算法

热门文章

  1. 谷歌推迟公布Google+漏洞遭参议员不满
  2. 信号的传递方式:连续系统和离散系统
  3. HDMI延长器与HDMI IP延长器应用区别
  4. TP5012KTS1是50A,1200V高可靠性IGBT模块,采用高速沟槽栅/场终止IGBT和发射极控制二极管。
  5. 修复SSL3.0漏洞
  6. BAS入侵和攻击模拟 简析(一)
  7. Nacos 服务端健康检查及客户端服务订阅机制源码分析(三)
  8. python列表遍历索引_python遍历一个列表 前面有个索引
  9. mysql5.5 timestamp类型create_time和update_time更新时间
  10. 基于SpringBoot的美容院管理系统