机器学习-->概率论和贝叶斯先验

来源:互联网 发布:网络组织 企业家才能 编辑:程序博客网 时间:2024/06/03 16:04

本篇博文将主要详细总结机器学习中有关概率论和贝叶斯的相关知识,并进行详细的公式推导和总结。

概率公式

条件概率:
这里写图片描述

全概率公式:
这里写图片描述

那么由以上我们可以推导处贝叶斯公式:
这里写图片描述

请思考:8支步枪中有5支已校准过,3支未校准。一 名射手用校准过的枪射击,中靶概率为0.8; 用未校准的枪射击,中靶概率为0.3;现从8 支枪中随机取一支射击,结果中靶。求该枪 是已校准过的概率。
这里写图片描述

贝叶斯公式这里写图片描述

给定某系统的若干样本x,计算该系统的参数,即
这里写图片描述,分母这里写图片描述这里写图片描述无关,不需要考虑。

P(θ):没有数据支持下,θ发生的概率:先验概率
P(θ|x):在数据x的支持下,θ发生的概率:后验概率
P(x|θ):给定某参数θ的概率分布:似然函数

常见分布

两点分布
o-1分布
已知随机变量X的分布律为:

这里写图片描述

则可以计算
E(X)=1*p+0*p=p
D(X)=这里写图片描述=这里写图片描述=p(1-p)=pq

一般来说在离散样本中方差计算公式 这里写图片描述

在连续变量中方差的计算公式 这里写图片描述
其中u是变量x的均值,f(x)是概率密度函数。

如果对上面的0-1分布做n次实验,那么是什么分布呢?

二项分布 Bernoulli distribution

设随机变量X服从参数为n,p二项分布,设这里写图片描述为第i次实验中事件A发生的次数,i=1,2,3,…,n;那么可得:
这里写图片描述

显然这里写图片描述相互独立均服从参数为p的0-1分布。
这里写图片描述
这里写图片描述

>>> import scipy.stats as st>>> n, p = 100, .5>>> X = st.binom(n, p)                        # 随机变量X:投100次硬币正面出现的个数                        # 用二项分布表示>>> X.mean()50.0                        # mu = n*p = 100*.5 >>> X.std()5.0                         # sigma = sqrt(n*p*q)=sqrt(100*.5*.5)

st.binom(100, .5).rvs() ⇒ 采样(trial);

考察Taylor(泰勒)展式

这里写图片描述,我们把两边同时除以 这里写图片描述,那么可得:

这里写图片描述 即是 这里写图片描述因为其和为1,那么其中的通项(这里面x是参数,k是自变量,k可取0,1,2,3,,…无穷)也满足一种分布。

这里写图片描述

泊松分布

设 X~这里写图片描述 ,且分布律为:

这里写图片描述

则有:

这里写图片描述

同理可以计算出泊松分布的方差D(X)=这里写图片描述

泊松分布期望和方差都是 这里写图片描述,那么这个 这里写图片描述 表示的是什么呢?

在实际事例中,当一个随机事件,以固定的平均瞬时速率λ(或称密 度)随机且独立地出现时,那么这个事件在单位时间(面积或体积) 内出现的次数或个数就近似地服从泊松分布P(λ)。

泊松分布实现代码

#coding:utf-8import numpy as npimport matplotlib.pyplot as pltfrom scipy import statslamda = 10p = stats.poisson(lamda) ## p是得出的泊松分布模型y = p.rvs(size=1000)##在里面随机的离散采样1000个样本mx = 30r = (0, mx)bins = r[1] - r[0] ##取30个分箱plt.figure(figsize=(10, 8), facecolor='w')## 这个是从1000个服从泊松分布的样本画出的直方图plt.hist(y, bins=bins, range=r, color='g', alpha=0.8, normed=True)t = np.arange(0, mx+1)## 这个是真正的泊松分布概率密度函数plt.plot(t, p.pmf(t), 'ro-', lw=2)plt.grid(True)plt.show()

这里写图片描述

当然也可以使用numpy里面的泊松分布函数

x = np.random.poisson(lam=5, size=10000)print xpillar = 15a = plt.hist(x, bins=pillar, normed=True, range=[0, pillar], color='g', alpha=0.5)plt.grid()plt.show()

均匀分布

这里写图片描述,其概率密度为:
这里写图片描述

则有 这里写图片描述

这里写图片描述

指数分布
设随机变量X服从指数分布,其概率密度为:

这里写图片描述

可以计算出:

这里写图片描述

其实指数分布就是:

这里写图片描述

其中λ > 0是分布的一个参数,常被称为率参数(rate parameter)。 即每单位时间内发生某事件的次数。指数分布的区间是[0,∞)。 如果一个随机变量X呈指数分布,则可以写作:X~ Exponential(λ)。

指数分布的无记忆性:
指数函数的一个重要特征是无记忆性(遗失 记忆性,Memoryless Property)。

 如果一个随机变量呈指数分布,当s,t≥0时有:

这里写图片描述

即,如果x是某电器元件的寿命,已知元件使用 了s小时,则共使用至少s+t小时的条件概率,与 从未使用开始至少使用t小时的概率相等。

正态分布

这里写图片描述,其概率密度为:

这里写图片描述

可以计算出

这里写图片描述

μ与σ是正态分布的两个参数,其中μ是位置参数,越大越右移,反之左移,用来决定曲线在横轴的位置。σ是形状参数,用来决定曲线高矮胖瘦的程度,σ越大,曲线越矮,越平缓,尾部翘得越高,σ越小越陡峭。

#coding:utf-8import numpy as npimport mathimport matplotlib.pyplot as plt##均值为0,方差为1mu = 0##均值为0sigma = 1##方差为1x_mu_0 = np.linspace(mu - 3 * sigma, mu + 3 * sigma, 51)y_mu_0 = np.exp(-(x_mu_0 - mu) ** 2 / (2 * sigma ** 2)) / (math.sqrt(2 * math.pi) * sigma)plt.figure(facecolor='w') ## 背景颜色取白色plt.plot(x_mu_0, y_mu_0, 'r-', label='mu=0 sigma=1',linewidth=2)##均值为2,方差为1mu1 = 2##均值为1x_mu_1 = np.linspace(mu1 - 3 * sigma, mu1 + 3 * sigma, 51)y_mu_1 = np.exp(-(x_mu_1 - mu1) ** 2 / (2 * sigma ** 2)) / (math.sqrt(2 * math.pi) * sigma)plt.plot(x_mu_1, y_mu_1, 'r--', label='mu=2 sigma=1',linewidth=2)##均值为0,方差为3mu = 0##均值为0sigma_3 = 3##方差为3x_mu_0 = np.linspace(mu - 3 * sigma_3, mu + 3 * sigma_3, 51)y_mu_0 = np.exp(-(x_mu_0 - mu) ** 2 / (2 * sigma_3 ** 2)) / (math.sqrt(2 * math.pi) * sigma_3)plt.plot(x_mu_0, y_mu_0, 'g-', label='mu=0 sigma=3',linewidth=2)## 'r-':表示实线绘制,然后再画x,y,'go'表示用圆圈绘制,linewidth=2表示实线宽度2,markersize=8表示圆圈大小为8# plt.plot(x, y, 'r-', x, y, 'go', linewidth=2, markersize=8)plt.legend()plt.xlabel('X', fontsize=15)##横轴用X标记plt.ylabel('Y', fontsize=15)##plt.title(u'高斯分布函数', fontsize=18)plt.grid(True)##画出虚线方格plt.show()

这里写图片描述

这里写图片描述

Beta分布

这里写图片描述

这里写图片描述

这里写图片描述

以上的各种分布,在python中均已实现,详情查看scipy.stats

指数族分布

有关指数族分布的说明请看这个博客
指数分布族
如果一个分布只有一个峰值,那么很有可能是一个指数分布,但是如果有多个分布,一定不是指数分布。

我们以0-1分布为例:

这里写图片描述

由此我们已经证明出来0-1分布就是指数族分布,然后我们可以令上式中的:

这里写图片描述

由此我们可以推导出:

这里写图片描述

注意在推导过程中,出现了Logistic方程。

这里写图片描述

这里写图片描述

Sigmoid/Logistic函数图像:

这里写图片描述

事件的独立性

给定A和B是两个事件,若有这里写图片描述,则称事件A和B相互独立。

说明:
A和B独立,则p(A|B)=p(A)

期望
离散型:这里写图片描述

连续型:这里写图片描述

期望的性质:

这里写图片描述
所谓不相关就是其协方差为0,独立能推导出协方差为0,但是协方差为0不一定能推导出独立。

方差

这里写图片描述

协方差

这里写图片描述

协方差和独立、不相关

这里写图片描述
不相关就是线性的独立,线性关系上不存在,不相关只能到一阶。

协方差的意义

这里写图片描述
注意协方差是比较两个变量之间的线性关系,只能到一阶上的线性关系。

协方差的上界

这里写图片描述

Pearson相关系数

这里写图片描述

协方差矩阵

这里写图片描述

这里写图片描述

切比雪夫不等式

这里写图片描述

大数定律

这里写图片描述

证明:这里写图片描述,当 这里写图片描述 时,方差为0,那么根据切比雪夫不等式可得:
这里写图片描述,那么可得:这里写图片描述

大数定律的意义

这里写图片描述

重要推论

这里写图片描述

上面的推论我们可以这样理解:比如在0-1分布中
这里写图片描述
我们重复0-1分布实验n次,那么这n次实验都是相互独立的,把变量x取到1设为事件A,且每次的期望都是p,前n次实验之和 这里写图片描述,因为每次独立实验结果不是0就是1。故变量x所有实验取值之和就是事件A发生的次数。那么我们可以利用大数定律得出上面的重要推论。

上面推论的意义是:事件发生的频率只要在事件足够多的情况下,频率无限接近于概率。

中心极限定理

这里写图片描述

用可视化的方法来验证中心极限定理
这里我们用直方图,直方图是一种能对值频率进行离散化显示的柱状图。数据点被拆分到离散的,间隔均匀的面元中,绘制的是各种数据点的数量。即是横坐标表示数据的一个区间划分,纵坐标表示数据点出现在这个区间内,其频率为多少。
这里假设随机变量服从统一的均匀分布。

# 验证中心极限定理t = 1000a = np.zeros(10000) ## 产生一个长度为10000的列表for i in range(t):## 迭代1000次    a += np.random.uniform(-5, 5, 10000)##每次在[-5,5)之间产生10000个数据,并且服从均匀分布,然后与列表a相加(对应位相加)a /= t## 列表a中每个数字除以1000plt.hist(a, bins=30, color='g', alpha=0.5, normed=True)plt.legend(loc='upper left')plt.grid()plt.show()

上述代码只是将服从均匀分布的数据进行了叠加。

这里写图片描述
有图可知,均匀分布的叠加服从一个类正态分布。

我们再以泊松分布来验证中心极限定理:

#coding:utf-8import numpy as npimport matplotlib.pyplot as pltfrom scipy import statsimport pandas as pdlamda=5N = 1000M = 10000a = np.zeros(M, dtype=np.float)p = stats.poisson(lamda)for i in np.arange(N):    y = p.rvs(size=M)    a += ya /= Nplt.hist(a, bins=20, color='g', alpha=0.8, normed=True)ser=pd.Series(a)ser.plot(kind='kde')plt.grid(b=True)plt.show()

同理上述代码中也只是对服从同一泊松分布的变量进行了叠加,然后查看其分布情况
这里写图片描述

注意上面随机变量是服从同一分布,而不一定是正态分布。

原创粉丝点击