R语言有限混合模型(FMM,finite mixture model)EM算法聚类分析间歇泉喷发时间

简介: R语言有限混合模型(FMM,finite mixture model)EM算法聚类分析间歇泉喷发时间

摘要

本文提供了一套用于分析各种有限混合模型的方法。既包括传统的方法,如单变量和多变量正态混合的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的情况下,半参数解效果很差,因为算法试图使每个成分看起来与整个混合分布相似。


最受欢迎的见解

相关文章
|
2月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
204 2
|
2月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
2月前
|
机器学习/深度学习 资源调度 算法
遗传算法模型深度解析与实战应用
摘要 遗传算法(GA)作为一种受生物进化启发的优化算法,在复杂问题求解中展现出独特优势。本文系统介绍了GA的核心理论、实现细节和应用经验。算法通过模拟自然选择机制,利用选择、交叉、变异三大操作在解空间中进行全局搜索。与梯度下降等传统方法相比,GA不依赖目标函数的连续性或可微性,特别适合处理离散优化、多目标优化等复杂问题。文中详细阐述了染色体编码、适应度函数设计、遗传操作实现等关键技术,并提供了Python代码实现示例。实践表明,GA的成功应用关键在于平衡探索与开发,通过精心调参维持种群多样性同时确保收敛效率
|
2月前
|
机器学习/深度学习 边缘计算 人工智能
粒子群算法模型深度解析与实战应用
蒋星熠Jaxonic是一位深耕智能优化算法领域多年的技术探索者,专注于粒子群优化(PSO)算法的研究与应用。他深入剖析了PSO的数学模型、核心公式及实现方法,并通过大量实践验证了其在神经网络优化、工程设计等复杂问题上的卓越性能。本文全面展示了PSO的理论基础、改进策略与前沿发展方向,为读者提供了一份详尽的技术指南。
粒子群算法模型深度解析与实战应用
|
2月前
|
机器学习/深度学习 数据采集 传感器
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
211 0
|
1月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
202 0
|
1月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
150 2
|
2月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
203 3
|
2月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
132 6
|
1月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
141 8

热门文章

最新文章