关于算法:R语言有限混合模型FMMfinite-mixture-model分析间歇泉喷发时间数据

8次阅读

共计 2716 个字符,预计需要花费 7 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=22609 

摘要

本文提供了一套用于剖析各种无限混合模型的办法。既包含传统的办法,如单变量和多变量正态混合的 EM 算法,也包含反映无限混合模型的一些最新钻研的办法。许多算法都是 EM 算法或基于相似 EM 的思维,因而本文包含无限混合模型的 EM 算法的概述。

1. 无限混合模型介绍

人群中的个体往往能够被划分为群。然而,即便咱们察看到这些个体的特色,咱们也可能没有真正察看到这些成员的群体。这项工作在文献中有时被称为 “ 无监督聚类 ”,事实上,混合模型个别能够被认为是由被称为 “ 基于模型的聚类 “ 的聚类办法的子集组成。

无限混合模型也可用于那些对个体聚类感兴趣的状况之外。首先,无限混合模型给出了整个子群的形容,而不是将个体调配到这些子群中。有时,无限混合模型只是提供了一种充沛形容特定散布的伎俩,例如线性回归模型中存在异样值的残差散布。
无论建模者在采纳混合模型时的指标是什么,这些模型的大部分实践都波及到一个假如,即子群是依照一个特定的参数模式散布的 – 而这个模式往往是单变量或多变量正态。

最近的钻研指标是放宽或批改多变量正态假如,无限混合模型剖析的计算技术,其中的成分是回归、多变量数据离散化产生的向量,甚至是齐全未指定的散布。

2. 无限混合模型的 EM 算法

===

EM 算法迭代最大化,而不是察看到的对数似然 Lx(θ),算式为

1. E 步:计算 Q(θ|θ(t))
2. M 步骤:设定 θ(t+1)=argmaxθ∈Φ Q(θ|θ(t))

对于无限混合模型,E 步骤不依赖于 F 的构造,因为缺失数据局部只与 Z 无关。

Z 是离散的,它们的散布是通过贝叶斯定理给出的。M 步骤自身能够分成两局部,与 λ 无关的最大化,它不依赖于 F,与 φ 无关的最大化,它必须为每个模型专门解决(例如,参数化、半参数化或非参数化)。因而,模型的 EM 算法有以下独特特点。
11. E 步。计算成分蕴含的 “ 后验 “ 概率(以数据和 θ(t)为条件)。

对于所有 i = 1, . . .,n 和 j = 1,. . . 从数值上看,齐全依照公式(2)的写法来实现是很危险的,因为在 xi 离任何一个成分都很远的状况下,所有的 φ(t)j 0(xi)值都会导致数值下溢为零,所以可能会呈现不确定的模式 0 /0。因而,许多例程实际上应用的是等价表达式

或其某种变体。

2.  λ 的 M 步骤。设

2.3. 一个 EM 算法的例子

作为一个例子,咱们思考对图 1 中形容的间歇泉喷发间隔时间期待数据进行单变量正态混合剖析。这种齐全参数化的状况对应于第 1 节中形容的单变量高斯家族的混合散布,其中(1)中的第 j 个重量密度 φj(x)为正态,均值为 μj,方差为 σ 2 j。

对于参数 (µj , σ2 j) 的 M 步,j = 1, . . 这个 EM 算法对这种单变量混合散布的 M 步骤是很简略的,例如能够在 McLachlan 和 Peel(2000)中找到。

mixEM(waiting, lambda = .5)

下面的代码将拟合一个二成分的混合散布(因为 mu 是一个长度为 2 的向量),其中标准偏差被假设为相等(因为 sigma 是一个标量而不是一个向量)。

图 1: 对数似然值的序列,Lx(θ (t))

图 2:用参数化 EM 算法拟合间歇泉期待数据。拟合的高斯成分。

R> plot(wait1, density = TRUE, cex.axis = 1.4, cex.lab = 1.4, cex.main = 1.8,
+ main2 = "Time between Old Faithful eruptions", xlab2 = "Minutes")

两个图:察看到的对数似然值的序列 t 7→Lx(θ (t))和数据的直方图,其中有 N(ˆµj , σˆ 2 j)的 m(这里 m =2)个拟合的高斯重量密度,j=1, . . .,m,叠加在一起。预计 θˆ

另外,应用 summary 也能够失去同样的输入。

summary(wait1)

3. Cutpoint methods 切割点办法

传统上,大多数对于无限混合模型的文献都假如方程(1)的密度函数 φj(x)来自一个已知的参数族。然而,一些作者最近思考了这样的问题:除了确保模型中参数的可识别性所需的一些条件外,φj(x)是不指定的。咱们应用 Elmore 等人(2004)的切割点办法。
咱们参考 Elmore 等人从 -63 开始,始终到 63 大概以 10.5 的距离采纳切点。而后从原始数据中创立一个多指标数据集,如下所示。

R> cutpts <- 10.5*(-6:6)
R> mult(data, cuts = cutpts)

一旦创立了多指标数据,咱们能够利用 EM 算法预计多指标参数。最初,计算并绘制出方程的预计散布函数。图 3 给出了 3 重量和 4 重量解决方案的图表;这些图表与 Elmore 等人(2004)的图 1 和图 2 中的相应图表十分类似。

R> plot(data, posterior, lwd = 2,
+ main = "三重量解")

图 3(a) 

图 3(b)

同样能够用 summary 来总结 EM 输入。

单变量对称、地位偏移的半参数例子

在 φ(-)绝对于 Lebesgue 度量是相对间断的额定假如下,Bordes 等人 (2007) 提出了一种预计模型参数的随机算法,即(λ, µ, φ)。一个特例

R> plot(wait1, which = 2)
R> wait2 <-EM(waiting)
R> plot(wait2, lty = 2)

图 4(a) 

 

图 4(b)

因为半参数版本依赖于核密度估计步骤(8),所以有必要为这个步骤抉择一个带宽。默认状况下,应用 ”Silverman 的教训法令 ”(Silverman 1986)利用于整个数据集。

R> bw.nrd0(wait)

但带宽的抉择会产生很大的不同,如图 4(b)所示。

> wait2a <- EM(wait, bw = 1)
> plot(wait2a
> plot(wait2b

咱们发现,在带宽靠近 2 的状况下,半参数解看起来十分靠近图 2 的正态混合散布解。进一步升高带宽会导致图 4(b)中的实线所体现出的 “ 凹凸不平 ”。另一方面,在带宽为 8 的状况下,半参数解成果很差,因为算法试图使每个成分看起来与整个混合散布类似。


最受欢迎的见解

1. R 语言 k -Shape 算法股票价格工夫序列聚类

2. R 语言中不同类型的聚类办法比拟

3. R 语言对用电负荷工夫序列数据进行 K -medoids 聚类建模和 GAM 回归

4. r 语言鸢尾花 iris 数据集的档次聚类

5.Python Monte Carlo K-Means 聚类实战

6.用 R 进行网站评论文本开掘聚类

7.用于 NLP 的 Python:应用 Keras 的多标签文本 LSTM 神经网络

8. R 语言对 MNIST 数据集剖析 摸索手写数字分类数据

9. R 语言基于 Keras 的小数据集深度学习图像分类

正文完
 0