本文我们讨论期望最大化理论,应用和评估基于期望最大化的聚类。
软件包数据
我们将使用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值用于选择簇的数量
聚类图
分类不确定性的图表
簇的轨道图
参考文献
3.R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
5.Python Monte Carlo K-Means聚类实战
7.用于NLP的Python:使用Keras的多标签文本LSTM神经网络