【发布时间】:2018-05-02 12:32:01
【问题描述】:
我一直在学习 EM 算法,使用的是斯坦福大学的 Andrew Ng 的资料,链接在这里: http://cs229.stanford.edu/notes/cs229-notes7b.pdf 我一直在尝试通过使用 Python 库来了解 EM 的实现,特别是使用 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的身份数组?
【问题讨论】:
标签: python expectation-maximization