机器学习-->概率论和贝叶斯先验
来源:互联网 发布:网络组织 企业家才能 编辑:程序博客网 时间: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()
同理上述代码中也只是对服从同一泊松分布的变量进行了叠加,然后查看其分布情况
注意上面随机变量是服从同一分布,而不一定是正态分布。
- 机器学习-->概率论和贝叶斯先验
- 机器学习(2):概率论与贝叶斯先验
- 机器学习升级版第七期——第二课(概率论与贝叶斯先验)
- 机器学习概率论基础
- 机器学习_贝叶斯公式/先验概率/后验概率
- 概率论之先验概率和后验概率
- 机器学习之概率论与数理统计基础知识-(1)马尔可夫和贝叶斯
- 机器学习基础-概率论知识点
- 机器学习的概率论概述
- 机器学习基础---概率论基础知识
- 机器学习实战--基于概率论的分类方法:朴素贝叶斯
- 机器学习之基于概率论的分类方法 : 朴素贝叶斯
- 机器学习知识点(二十七)先验概率和后验概率理解
- 机器学习基础-学习笔记 概率论
- 机器学习学习笔记 2、概率论
- 机器学习预备知识之概率论(上)
- 机器学习预备知识之概率论(下)
- 机器学习中概率论知识复习
- valgrind内存检测工具
- Codeforces Round #420 B. Okabe and Banana Trees
- Python 操作 MongoDB
- UNP(卷2:进程间通信)—— 第5章:Posix消息队列
- JAFrameWork网站开发框架
- 机器学习-->概率论和贝叶斯先验
- 【HDU2582】f(n)
- JQuery 里面的 click 事件会累加
- SSH KEY生成步骤
- ssh中“Host key verification failed.“的解决方案
- 关于Elastic入门的一些上手易懂资料
- 快速幂1005
- JPA简介
- TCP的三次握手和四次挥手以及为什么