我一直在使用斯坦福大学的 Andrew Ng 的材料来学习 EM 算法,链接在这里: http ://cs229.stanford.edu/notes/cs229-notes7b.pdf 我一直在尝试了解EM 通过使用 Python 库,专门用于处理 Old Faithful 数据集。链接如下: https ://mixem.readthedocs.io/en/latest/examples/old_faithful.html 这个数据集有大约272个观测值,两个变量分别是喷发时间和等待时间;其中包含喷发之间的时间信息。我对以下代码行有几个问题:
weights, distributions, ll = mixem.em(np.array(data), [
mixem.distribution.MultivariateNormalDistribution(np.array((2, 50)), np.identity(2)),
mixem.distribution.MultivariateNormalDistribution(np.array((4, 80)), np.identity(2)),
])
- 为什么我必须为 mu 创建两个数组以及为什么要考虑这些维度?我想第一个(2,50)第一个2是指变量的数量(爆发和等待),但是为什么要把50作为第二个维度。另外,为什么我需要 (4,80) 的数组和两个维度为 2 的身份数组?