机器学习中的概率分布(一)

f9adb97bd05655388b0e3173664ddd69.png

设有一个随机变量X, 其期望存在为E(X),方差存在为D(X) 有结论:

1、均匀分布

 

X~U(a,b)

方差:DX=(b-a)^2/12

期望:EX=(a+b)/2

# 均匀分布
import numpy as np
from matplotlib import pyplot as plt

def unifrom(x,a,b):
    y=[1/(b-a) if a<= val and val <= b
               else 0 for val in x]
    return x, y, np.mean(y), np.std(y)

x = np.arange(-100,100)
for ls in [(-50,50),(10,20)]:
    a,b = ls[0], ls[1]
    x,y,u,s = unifrom(x,a,b)
    plt.plot(x, y, label =r'$\mu=%.2f,\ \sigma=%.2f$' %(u,s))

plt.legend()
plt.savefig('graph/uniform.png')
plt.show()

2、伯努利分布(离散)

  • 伯努利分布又名0-1分布或者两点分布,是一个离散型概率分布。
  • 若伯努利试验成功,则伯努利随机变量取值为1。
  • 若伯努利试验失败,则伯努利随机变量取值为0。
  • 记其成功概率为p(0<=p<=1),失败概率为q=1-p。
  • 伯努利分布是一个离散型机率分布,是N=1时二项分布的特殊情况。
  • EX= p,DX=p(1-p)。
"""
    Bernoulli distribution
    https://en.wikipedia.org/wiki/Bernoulli_distribution
"""
import random
import numpy as np
from matplotlib import pyplot as plt

def bernoulli(p,k):
    return p if k else 1-p

n = 100 #试验次数
p = 0.4
x = np.arange(n)
y = []
for _ in range(n):
    pick = bernoulli(p,k=bool(random.getrandbits(1)))
    y.append(pick)

u,s = np.mean(y), np.std(y)
plt.scatter(x, y, label=r'$\mu=%.2f,\ \sigma=%.2f$' % (u, s))
plt.legend()
plt.show()

 

3、二项分布(离散)

  • 参数为 n 和 p 的二项分布是一系列 n 个独立实验中成功次数的离散概率分布。

  • 二项式分布是指通过指定要提前挑选的数量而考虑先验概率的分布。 

 

"""
    Binomial distribution
    Code by Tae-Hwan Hung(@graykode)
    https://en.wikipedia.org/wiki/Binomial_distribution
"""
import numpy as np
from matplotlib import pyplot as plt
import operator as op
from functools import reduce

def const(n,k):
    k = min(k, n-k)
    number = reduce(op.mul, range(n,n-k, -1),1)
    denom = reduce(op.mul, range(1,k+1),1)
    return number / denom

def binomial(n,p):
    q = 1-p
    y = [const(n,k) * (p ** k) * (q ** (n-k)) for k in range(n)]
    return y, np.mean(y), np.std(y)

for ls in [(0.5, 20), (0.7, 40), (0.5, 40)]:
    p, number = ls[0], ls[1]
    x = np.arange(number)
    y, u, s = binomial(number, p)
    plt.scatter(x, y, label = r'$\mu=%.2f,\ \sigma=%.2f$' % (u,s))

plt.legend()
plt.show()

4、多伯努利分布,分类分布(离散)

A categorical distribution is a discrete probability distribution whose sample space is the set of k individually identified items. It is the generalization of the Bernoulli distribution for a categorical random variable. 

将一个小球放入两个桶,记变量x 为第一个桶里面有的小球个数,那么只有 0 个或者 1 个,所以是服从伯努利分布;
将 n 个小球放入两个桶,记变量 x 为第一个桶里面的小球个数,那么最少可能有 0 个,最多可能有 n 个,所以服从二项分布;
将一个小球放入 k 个桶,记变量 x 为 k 个桶内的小球个数,所以是一个向量,并且是One-hot的形式,因为这个小球只能在一个桶里面,所以是服从Categorical分布;
将 n 个小球放入 k 个桶,记变量 x 为 k 个桶内的小球个数,是一个向量,并且向量元素的和为 n,所以是服从多项分布。
碎片化学习之数学(二):Categorical Distribution - 知乎这次介绍一下 Categorical Distribution,中文可以翻译为类别分布、范畴分布。接下来主要介绍一些Categorical Distribution和一些类似分布的区别,并主要介绍一下Gumbel Distribution与它的关系。先给出有着紧密联…https://zhuanlan.zhihu.com/p/59550457

"""
    Code by Tae-Hwan Hung(@graykode)
    https://en.wikipedia.org/wiki/Categorical_distribution
    Categorical_distribution:3-Class Example
"""
import random
import numpy as np
from matplotlib import pyplot as plt

def categorical(p,k):
    return p[k]

number = 100
p = [0.2, 0.1, 0.7]
x = np.arange(number)
y = []
for _ in range(number):
    pick = categorical(p, k=random.randint(0,len(p)-1))
    y.append(pick)

u,s = np.mean(y), np.std(y)
plt.scatter(x, y, label=r'$\mu=%.2f,\ \sigma=%.2f$' % (u, s))
plt.legend()
plt.show()

 5.多项式分布(离散)

假设我们进行 n 次试验,每次试验有 k种互不相容的结果,每种结果出现的概率分别是
p1​,p2​,p3​,⋯,pk​。


 

 

多项分布(一种离散分布)_Uncertainty!!的博客-CSDN博客_多项分布多项式分布多项式分布是二项分布的扩展,进行nnn次独立重复试验 ,每次试验都有 kkk 种可能结果假设我们进行 nnn 次试验,每次试验有 kkk 种互不相容的结果,每种结果出现的概率分别是 p1,p2,p3,⋯,pkp_1,p_2,p_3,\cdots,p_kp1​,p2​,p3​,⋯,pk​我们用 f(x1,x2,⋯ ,xk)f(x_1,x_2,\cdots,x_k)f(x1​,x2​,⋯,xk​) 表示在这 nnn 次试验中,第 iii 种可能的结果出现了 xix_ixi​ 次的概率,其中https://blog.csdn.net/weixin_48524215/article/details/122956899

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值