概率密度估计的非参数方法
3.4 概率密度估计的非参数方法
最大似然估计和贝叶斯估计都属于参数估计,但有时我们无法给出密度函数的形式,这时就需要用非参数估计,直接用样本估计整个函数。
3.4.1 非参数估计的基本原理与直方图方法
要求解的问题是:已知样本集 χ = { x 1 , … , x N } \chi = \{x_1,…,x_N\} χ={x1,…,xN} 中的样本是从服从密度函数 p ( x ) p(x) p(x) 的总体中独立抽取出来的,求 p ( x ) p(x) p(x) 的估计 p ^ ( x ) \hat p(x) p^(x) 。
考虑在样本所在空间的某个小区域 R R R ,某个随机向量落入这个小区域的概率是
P R = ∫ R p ( x ) d x ( 3 − 55 ) P_R = \int_R p(x)dx \quad(3-55) PR=∫Rp(x)dx(3−55)
根据二项分布,在样本集 χ \chi χ 中恰好有 k k k 个落入小区域 R R R 的概率是
P k = C N k P R k ( 1 − P R ) N − k ( 3 − 56 ) P_k = C_N^kP_R^k(1-P_R)^{N-k} \quad(3-56) Pk=CNkPRk(1−PR)N−k(3−56)
k k k 的期望值是
E [ k ] = N P R ( 3 − 57 ) E[k] = NP_R \quad(3-57) E[k]=NPR(3−57)
而且 k k k 的众数是
m = [ ( N + 1 ) P R ] ( 3 − 58 ) m=[(N+1)P_R] \quad(3-58) m=[(N+1)PR](3−58)
其中 [ ] [ ] [] 表示取整数。因此,当小区域中实际落入了 k k k 个样本时, P R P_R PR 的一个很好的估计是
P ^ R = k N ( 3 − 59 ) \hat P_R=\dfrac{k}{N} \quad(3-59) P^R=Nk(3−59)
当 p ( x ) p(x) p(x) 连续、且小区域 R R R 的体积 V V V 足够小时,可以假定在该小区域范围内 p ( x ) p(x) p(x) 是常数,则式(3-55)可近似为
P R = ∫ R p ( x ) d x = p ( x ) V ( 3 − 60 ) P_R = \int_R p(x)dx = p(x)V \quad(3-60) PR=∫Rp(x)dx=p(x)V(3−60)
用式(3-59)的估计代入到式(3-60)中,可得,在小区域 R R R 的范围内
p ^ ( x ) = k N V ( 3 − 61 ) \hat p(x) = \dfrac{k}{NV} \quad(3-61) p^(x)=NVk(3−61)
这就是在上面的直方图中使用的对小舱内概率密度的估计。
可以设想,小舱的选择是与估计的效果密切相连的,还与样本的分布有关。所以,小舱的选择应该与样本总数相适应,理论上,假定样本总数是 n n n ,小舱的体积为 V n V_n Vn ,在 X X X 附近位置上落入小舱的样本个数是 k n k_n kn ,那么当样本趋于无穷多时 p ^ ( x ) \hat p(x) p^(x) 收敛于 p ( x ) p(x) p(x)的条件是
lim n → ∞ V n = 0 , lim n → ∞ k n = ∞ , lim n → ∞ k n n = 0 ( 3 − 62 ) \lim\limits_{n\rarr\infin}V_n = 0,\quad \lim\limits_{n\rarr\infin}k_n = \infin ,\lim\limits_{n\rarr\infin}\dfrac{k_n}{n} = 0 \quad(3-62) n→∞limVn=0,n→∞limkn=∞,n→∞limnkn=0(3−62)
做法:
- 把样本 x x x 的每个分量在其取值范围内分成 k k k 个等间隔的小窗。如果 x x x 是 d d d 维向量,则这种分割就会得到 k d k^d kd 个小体积或者称作小舱,每个小舱的体积计作 V V V 。
- 统计落入每个小舱内的样本数目 q i q_i qi 。
- 把每个小舱内的概率密度看作是常数,并用 q i N V \dfrac{q_i}{NV} NVqi 作为其估计值,其中 N N N 为样本总数。
3.4.2 k N k_N kN 近邻估计方法
k N k_N kN 近邻估计就是一种采用可变大小的小舱的密度估计方法,即调整小舱的体积,使小舱内恰好落入 k N k_N kN 个样本,并用式(3-60)来估计 p ^ ( x ) \hat p(x) p^(x) ,
p ^ ( x ) = k N N V ( 3 − 63 ) \hat p(x) = \dfrac{k_N}{NV} \quad(3-63) p^(x)=NVkN(3−63)
这样,在样本密度比较高的区域小舱的体积就会比较小,而在密度低的区域则小舱体积自动增大。为了取得好的估计效果,仍然需要根据式(3-62)来选择 k N k_N kN 与 N N N 的关系,比如可以选取为 k N ∼ k N k_N\sim k\sqrt N kN∼kN , k k k 为某个常数。
3.4.3 Parzen 窗法
Parzen 窗法与直方图很相似,但可以通过使用合适的核函数,使得估计的概率密度具有光滑连续的特点。
举例:
sample 1 2 3 4 5 6 value -2.1 -1.3 -0.4 1.9 5.1 6.2 左侧的直方图,横坐标被分割成不同的小区域,每个小区域的宽度为2,小区域的高度为 1/12 ,如果有多个点落在同一个区域中,将高度进行累加。
右侧的核密度估计,则在每个数据点的位置放置了一个方差为2.25的法向核函数(用红色虚线表示),并且同直方图一样对高度进行累加。
根据式(3-61) p ^ ( x ) = k N V \hat p(x) = \dfrac{k}{NV} p^(x)=NVk 。在固定小区域体积的前提下将其进行变换
p ^ ( x ) = 1 N V ∑ i = 1 N { 1 x − h ⩽ x i ⩽ x + h 0 e l s e = 1 N V ∑ i = 1 N { 1 − 1 ⩽ x i − x h ⩽ 1 0 e l s e = 1 N V ∑ i = 1 N φ ( x − x i h ) \hat p(x) = \dfrac{1}{NV} \sum \limits_{i=1}^N \begin{cases} 1&x-h\leqslant x_i\leqslant x+h \\ 0&else\end{cases} \newline =\dfrac{1}{NV} \sum \limits_{i=1}^N \begin{cases} 1&-1\leqslant \dfrac{x_i-x}{h}\leqslant 1 \\ 0&else\end{cases} \newline =\dfrac{1}{NV} \sum \limits_{i=1}^N \varphi(\dfrac{x-x_i}{h}) p^(x)=NV1i=1∑N{10x−h⩽xi⩽x+helse=NV1i=1∑N⎩ ⎨ ⎧10−1⩽hxi−x⩽1else=NV1i=1∑Nφ(hx−xi)
这样得到的 1 V φ ( x − x i h ) \dfrac1 V \varphi(\dfrac{x-x_i}{h}) V1φ(hx−xi) 就是一个核函数(方窗)
假设 x ∈ R d x \in R^d x∈Rd 是 d d d 维特征向量,并假设每个小舱是一个超立方体,它在每一维的棱长都为 h h h ,则小舱的体积是
V = h d ( 3 − 64 ) V = h^d \quad(3-64) V=hd(3−64)
要计算每个小舱内落入的样本数目,可以定义如下的 d d d 维单位方窗函数
φ ( [ u 1 , u 2 , … , u d ] T ) = { 1 ∣ u j ∣ ⩽ 1 2 , j = 1 , 2 , … , d 0 e l s e ( 3 − 65 ) \varphi ([u_1,u_2,…,u_d]^T) = \begin{cases} 1 & |u_j|\leqslant\dfrac1 2 ,j = 1,2,…,d \\ 0 & else\end{cases} \quad(3-65) φ([u1,u2,…,ud]T)=⎩ ⎨ ⎧10∣uj∣⩽21,j=1,2,…,delse(3−65)
这个函数在以原点为中心的 d d d 维单位超正方体内取值为1,而其他地方取值都为0。对于每一个 x x x ,要考查某个样本 x i x_i xi 是否在这个 x x x 为中心、 h h h 为棱长的小立方小舱内,就可以通过计算 φ ( x − x i h ) \varphi(\dfrac{x-x_i}{h}) φ(hx−xi) 来进行。现共有 N N N 个观测样本 { x 1 , x 2 , … , x N } \{x_1,x_2,…,x_N\} {x1,x2,…,xN} ,那么落入以 x x x 为中心的超立方体内的样本数就可以写成
k N = ∑ i = 1 N φ ( x − x i h ) ( 3 − 66 ) k_N = \sum\limits_{i=1}^N \varphi(\dfrac{x-x_i}{h}) \quad(3-66) kN=i=1∑Nφ(hx−xi)(3−66)
代入(3-61)可以得到对于任意一点 x x x 的密度估计的表达式
p ^ ( x ) = 1 N V ∑ i = 1 N φ ( x − x i h ) ( 3 − 67 ) \hat p(x) = \dfrac{1}{NV} \sum\limits_{i=1}^N \varphi(\dfrac{x-x_i}{h}) \quad(3-67) p^(x)=NV1i=1∑Nφ(hx−xi)(3−67)
核函数要求:
因为要估计的概率密度函数积分为1。
∫ R p ^ ( x ) d x = 1 ∫ R 1 N V ∑ i = 1 N φ ( x − x i h ) = 1 1 N ∑ i = 1 N ∫ − ∞ + ∞ 1 V φ ( x − x i h ) d x = 1 \int\limits_R \hat p(x)dx = 1 \newline \int\limits_R\dfrac{1}{NV} \sum\limits_{i=1}^N \varphi(\dfrac{x-x_i} {h}) = 1 \newline \dfrac{1}{N} \sum\limits_{i=1}^N \int_{-\infin}^{+\infin} \dfrac1 V \varphi(\dfrac{x-x_i}{h})dx = 1 \newline R∫p^(x)dx=1R∫NV1i=1∑Nφ(hx−xi)=1N1i=1∑N∫−∞+∞V1φ(hx−xi)dx=1
令 t = x − x i h t=\dfrac{x-x_i}{h} t=hx−xi 则,
1 N ∑ i = 1 N ∫ − ∞ + ∞ 1 V φ ( t ) d t = 1 \dfrac{1}{N} \sum\limits_{i=1}^N \int_{-\infin}^{+\infin} \dfrac1 V \varphi(t)dt = 1 N1i=1∑N∫−∞+∞V1φ(t)dt=1
因此核函数
∫ K ( x , x i ) d x = 1 且 K ( x , x i ) ⩾ 0 ( 3 − 71 ) \int K(x,x_i)dx = 1 且 K(x,x_i) \geqslant 0 \quad(3-71) ∫K(x,xi)dx=1且K(x,xi)⩾0(3−71)
常见核函数:
- 方窗
k ( x , x i ) = { 1 h d ∣ x J − x i j ∣ ⩽ h 2 , j = 1 , 2 , … , d 0 e l s e ( 3 − 72 ) k(x,x_i) = \begin{cases} \dfrac{1}{h^d}&|x^J-x_i^j|\leqslant\dfrac h 2,j=1,2,…,d \\ 0&else \end{cases} \quad(3-72) k(x,xi)=⎩ ⎨ ⎧hd10∣xJ−xij∣⩽2h,j=1,2,…,delse(3−72) - 高斯窗(正态窗)
k ( x , x i ) = 1 ( 2 π ) d ρ 2 d ∣ Q ∣ exp [ − 1 2 ( x − x i ) T Q − 1 ( x − x i ) ρ 2 ] ( 3 − 73 ) k(x,x_i)=\dfrac1 {\sqrt{(2\pi)^d\rho^{2d}|Q|}}\exp[-\dfrac1 2 \dfrac{(x-x_i)^TQ^{-1}(x-x_i)}{\rho^2}] \quad(3-73) k(x,xi)=(2π)dρ2d∣Q∣ 1exp[−21ρ2(x−xi)TQ−1(x−xi)](3−73) - 超球窗
k ( x , x i ) = { V − 1 ∣ ∣ x − x i ∣ ∣ ⩽ ρ 0 e l s e k(x,x_i) = \begin{cases} V^{-1}&||x-x_i||\leqslant\rho \\ 0&else \end{cases} k(x,xi)={V−10∣∣x−xi∣∣⩽ρelse
非参数法的共同问题是对样本数目需求较大。
参考
张学工. 模式识别. 第三版. 北京:清华大学出版社,2010
张学工,汪小我. 模式识别与机器学习. 第四版. 北京:清华大学出版社,2021
部分图片来源于网络
概率密度估计的非参数方法相关推荐
- 贝叶斯决策理论和概率密度估计方法
贝叶斯决策理论和概率密度估计方法 这学期学习了<模式识别>这门课程,刚刚考完试,趁着考试复习的机会把模式识别的基础方法总结了一下了,这一篇的主要内容是转自Angel_Yuaner大神的博客 ...
- 概率密度估计小结--参数估计与非参数估计
通过观测世界得到了一些数据,我们要从这些数据里面去找出规律来认识世界,一般来说,在概率上我们有一个一般性的操作步骤: 1. 观测样本的存在 2. 每个样本之间是独立的 3. 所有样本符合一个概率模型 ...
- 概率密度估计--参数估计与非参数估计
我们观测世界,得到了一些数据,我们要从这些数据里面去找出规律来认识世界,一般来说,在概率上我们有一个一般性的操作步骤 1. 观测样本的存在 2. 每个样本之间是独立的 3. 所有样本符合一个概率模型 ...
- parzen窗概率密度估计 matlab,核密度估计(parzen窗密度估计)
matlab中提供了核平滑密度估计函数ksdensity(x): [f, xi] = ksdensity(x) 返回矢量或两列矩阵x中的样本数据的概率密度估计f. 该估计基于高斯核函数,并且在等间隔的 ...
- 概率密度估计方法-核密度估计和高斯混合分布
1.概率密度估计方法 概率密度估计方法用于估计一组数据集的概率密度分布,分为参数估计方法和非参数估计方法. 参数估计方法 假定样本集符合某一概率分布,然后根据样本集拟合该分布中的参数,例如:似然估计, ...
- 机器学习中的概率模型和概率密度估计方法 及 VAE生成式模型详解(之二)
简介 非监督机器学习(Unsupervised Machine Learning)中的数据分布密度估计(Density Estimation).样本采样(Sampling)与生成(Generation ...
- 机器学习中的概率模型和概率密度估计方法及VAE生成式模型详解之二(作者简介)...
Brief Introduction of the Blog Author Chief Architect at 2Wave Technology Inc. (a startup company in ...
- 机器学习EPD:概率密度估计
待增加 转载于:https://www.cnblogs.com/xiehbpku/p/6116103.html
- 贝叶斯估计(概率密度函数的估计的参数方法)
接上一篇文章:最大似估计 贝叶斯估计: 参数估计 是最随机变量,根据观测数据对参数的分布进行估计,还要考虑先验分布 最大似然估计: 参数估计 是未知的,根据观测数据来估计 的值. 贝叶 ...
最新文章
- 自学python要看哪些书籍-Python入门自学到精通需要看哪些书籍?
- php -q poller.php --force,cacti 安装后没有图像
- k8s dashboard_【大强哥-k8s从入门到放弃02】Kubernetes1.17部署Dashboard2.0
- Angular6_PWA
- php对数组进行合成的函数,php合并数组函数array_merge()
- windows Tracert命令
- c++ socket线程池原理_一篇文章看懂 ThreadLocal 原理,内存泄露,缺点以及线程池复用的值传递问题...
- 怎么禁用计算机的可信执行,英特尔®融合安全和管理引擎、英特尔®服务器平台服务、英特尔®可信执行引擎和英特尔®主动管理技术咨询 (intela-sa-00185)...
- R语言 echarts4r 不显示图形_【课程预告】清华定量俱乐部lt;R专场gt;第三讲——R可视化基础...
- c语言程序设计电子科技大学,C语言程序设计
- 写给没时间理财的上班族
- 快手Java开发二面面经分享
- Java架构师学习路线图
- 高性能本地缓存Ristretto(一)——存储策略
- java两个frame之间_java – JFrame中的两个JPanel,另一个是JP
- 顺丰速运——深圳大数据部一面(18分钟)
- js实现简单的四则运算
- 很舒服的Xshell配色方案
- iOS完整App资源收集
- daydayup.py
热门文章
- RT_Thread_临界资源保护
- 计算机_数据库_考研复试_简答题_全(1)
- linux找不到网络打印机驱动程序,添加网络打印机时提示找不到驱动程序
- oracle 查询会话数量,Oracle会话数量查询及结束会话方法
- matlab 非线性方程数值解法,非线性方程组的几种数值解法+matlab源代码
- 去俄罗斯看球语言不通怎么办?带上荣耀10手机,用AI随行翻译就行了
- 【科普】和尚为何要吃素不吃肉
- (五)深入理解蓝牙Mesh的消息格式之“格式与长度”
- 04-前端技术_HTML与HTML5常用标签
- 常见分布式计算框架特点