Mclust 型号选择

机器算法验证 r 聚类 高斯混合分布 比克 基于模型的聚类
2022-03-22 07:51:21

R 包mclust使用 BIC 作为集群模型选择的标准。据我了解,应该选择 BIC 最低的模型而不是其他模型(如果您只关心 BIC)。但是,当 BIC 值全部为负时,该Mclust函数默认使用具有最高 BIC 值的模型。我对各种试验的总体理解是mclust将“最佳”模型识别为具有的模型。max{BICi}

我试图理解为什么作者做出这个决定。它在 CRAN 站点中进行了说明:https ://cran.r-project.org/web/packages/mclust/vignettes/mclust.html

此外,mclust软件包的作者在他们的论文基于模型的分类方法:在第 5 页上使用化学计量学中的 mclust 软件中对此做了说明。

“最佳”模型被认为是拟合模型中 BIC 最高的模型。

任何人都可以阐明这个问题吗?如果 BIC 越低越好,为什么作者不选择 BIC 最低的模型,而是选择绝对 BIC 最小的模型?如果可能,请提供参考。

1个回答

找到的解决方案:

那么,重申一下问题,为什么该Mclust函数默认将具有最高 BIC 值的模型作为“最佳”模型?

好问题!让我给你一个冗长的答案。

TL;DR:BIC 值是综合(非最大)似然的近似值,您需要具有最大综合似然(贝叶斯因子)的模型,因此您选择具有最大 BIC 的模型。

长答案:使用基于模型的聚类而不是基于启发式的聚类方法(例如 k-means 和分层(凝聚)聚类)的目的是提供一种更正式和直观的方法来比较和选择适合您的数据的聚类模型。

Mclust 使用基于概率模型、高斯混合模型的聚类技术。使用概率模型允许开发基于模型的方法来比较不同的集群模型和大小。有关更多详细信息,请参阅 * 基于模型的分类方法:在化学计量学中使用 mclust 软件* ( https://www.jstatsoft.org/article/view/v018i06 )。

如上所述,作者指出“最佳”模型是具有最大 BIC 值的模型。这是基于增强模型的聚类、密度估计和判别分析软件的另一个示例:MCLUST ( https://www.stat.washington.edu/raftery/Research/PDF/fraley2003.pdf ):

Baysian Information Criterion 或 BIC (?) 是最大化对数似然的值,对模型中的参数数量进行了惩罚,并允许比较具有不同参数化和/或不同集群数量的模型。一般来说,BIC 的值越大,模型和集群数量的证据就越强(参见例如 Fraley 和 Raftery 2002a)。

模型选择:现在有一个概率模型附加到集群,您可以使用更复杂的工具通过贝叶斯因子使用贝叶斯模型选择来比较多个集群模型。

在他们的论文中,有多少个集群?哪种聚类方法?通过基于模型的聚类分析得到答案http://www.stat.washington.edu/raftery/Research/PDF/fraley1998.pdf

贝叶斯因子是一个模型相对于另一个模型的后验概率,假设两者都不是先验的。Banfield 和 Raftery [2] 使用启发式推导出的近似值来计算两倍对数贝叶斯因子,称为“AWE”,以根据分类可能性确定层次聚类中的聚类数。当使用 EM 来寻找最大混合似然时,一个更可靠的近似值是对数贝叶斯因子的两倍,称为 BIC (Schwarz [32]):

2log(p(x|M))+constant2lM(x,θ^)mmlog(n)BIC

其中是模型 M 数据的(综合)似然性,是模型的最大混合对数似然,m_M 是独立参数的数量在模型中进行估计。出于计算 BIC 的目的,集群的数量不被视为独立参数。如果每个模型都具有相同概率,则的后验概率成正比因此,BIC 值越大,模型的证据越强。p(x|M)lM(x,θ^)a priorip(x|M)M

所以,总而言之,BIC 不应该被最小化。使用这种基于模型的聚类方法的人应该寻找使 BIC 最大化的模型,因为它以最大集成似然近似贝叶斯因子。

最后一条语句也有一个参考:

Banfield, JD 和 Raftery, AE (1993) 基于模型的高斯和非高斯聚类。生物识别,49, 803–821。

编辑:基于电子邮件交换,

作为旁注,请始终检查 BIC 的定义方式。有时,例如在大多数回归上下文中(传统上,对于参数估计,统计量被最小化,例如残差平方和、偏差等),BIC 计算为 -2*loglik + npar*log(n),即mclust 中使用了什么。显然,在这种情况下,BIC 应该被最小化。

BIC 的一般定义是 mclust 不包括负面成分。BIC=2×ln(L(θ|x))+k×ln(n)