R语言:EM算法和高斯混合模型的实现

406 阅读2分钟

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

原文出处:拓端数据部落公众号

 

本文我们讨论期望最大化理论,应用和评估基于期望最大化的聚类。

软件包

 

数据

我们将使用mclust软件包附带的“糖尿病”数据。

data(diabetes)

summary(diabetes)

## class glucose insulin sspg## Chemical:36 Min. : 70 Min. : 45.0 Min. : 10.0## Normal :76 1st Qu.: 90 1st Qu.: 352.0 1st Qu.:118.0## Overt :33 Median : 97 Median : 403.0 Median :156.0## Mean :122 Mean : 540.8 Mean :186.1## 3rd Qu.:112 3rd Qu.: 558.0 3rd Qu.:221.0## Max. :353 Max. :1568.0 Max. :748.0

 

 

期望最大化(EM)

期望最大化(EM)算法是用于找到最大似然的或在统计模型参数,其中该模型依赖于未观察到的潜变量最大后验(MAP)估计的迭代方法。期望最大化(EM)可能是无监督学习最常用的算法。

似然函数

似然函数找到给定数据的最佳模型。

期望最大化(EM)算法

假设我们翻转硬币并得到以下内容 - 0,1,1,0,0,1,1,0,0,1。我们可以选择伯努利分布

或者,如果我们有以厘米为单位的人的身高(男性和女性)的数据。高度遵循正常的分布,但男性(平均)比女性高,因此这表明两个高斯分布的混合模型。

贝叶斯信息准则(BIC)

以糖尿病数据为例

EM集群与糖尿病数据使用mclust。

log.likelihood:这是BIC值的对数似然值

n:这是X点的数量

df:这是自由度

BIC:这是贝叶斯信息标准; 低是好的

ICL:综合完整X可能性 - BIC的分类版本。

clPairs(X,class.d)

 

EM的绘图命令会生成以下四个绘图:

BIC值用于选择簇的数量

聚类图

分类不确定性的图表

簇的轨道图



参考文献

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的小数据集深度学习图像分类