如何获得 k-means 聚类的权重和方差?

数据挖掘 Python 聚类 scikit-学习
2022-03-01 07:44:59

我试图重现本文的结果但使用 python 和 HMMlearn 库而不是 matlab。本文描述了使用 HMM(隐马尔可夫模型)来预测股票价格的过程。

该论文详细介绍了使用 4 状态、5 混合高斯分布作为模型。转移概率和初始状态概率是一致的,但是排放概率是基于使用现有股票价格数据集的 k-means 算法的结果确定的。

后一部分是我卡住的地方,本文建议使用从 k-means 算法返回的每个集群的均值、方差和权重作为混合中每个成分的均值、方差和权重。据我了解,集群的平均值只是每个质心的中心,但是我不确定您将如何获得方差或权重。

TL;DR 给定一个 3 维数据集 X(形式为[[a, b, c], [d, e, f]...])并使用 k = 5(k = 混合分量数)的 k-means 算法,我将如何确定每个集群的权重和方差?

1个回答

使用 k-means 初始化高斯混合建模的 EM 是有效的。正如您所说,每个组件的平均值将是属于同一聚类的所有样本的平均值(这取决于所使用的聚类算法,有时质心不是聚类的平均值,而是样本之一)。对于权重,您可以使用以下公式:集群 x 的权重 = 属于集群 x 的样本数除以样本总数。因此,样本数最多的簇是权重最高的簇。对于方差:只需找到属于同一簇的所有样本的方差。