【问题标题】:GMM/EM on time series cluster时间序列集群上的 GMM/EM
【发布时间】:2018-08-20 03:14:38
【问题描述】:

根据paper,它应该可以工作。 但是作为scikit-learn包的学习者..我不明白如何。 所有示例代码都以椭圆或圆圈为here

我真的很想知道如何通过不同的模式对以下图进行聚类... 0 -3 是特定时间段内的功率平均值(分为 4 个),而 4、5、6 分别对应于年,工作日/周末的差异,冬季/夏季的差异。所以ylabel不一定会遇到4,5,6。

根据样本..BIC 确实生成了最佳聚类数为 5。

n_components = np.arange(1, 21)
models = [GMM(n, covariance_type='full', random_state=0).fit(input)
      for n in n_components]
plt.plot(n_comp, [m.bic(read) for m in models], label = 'BIC')
plt.legend(loc='best')
plt.xlabel('n_components')

如果我使用可用的示例代码进行绘图,那么它会返回一些完全奇怪的东西,不值得分享。我虽然负 BIC 没问题。但我什至不知道它是否正确聚类以推断出 5 是最佳数字。

【问题讨论】:

  • 免责声明:我没有看论文。正确的集群没有明确的定义,因此您必须决定特定的集群是否可以。如果直观的结果不是很好,我建议使用其他的聚类方法,看看有没有变化。

标签: scikit-learn time-series cluster-analysis gmm expectation-maximization


【解决方案1】:

基本上是为了解决这个问题。我关注post 回答了如何使用 GMM 进行集群。

相应地使用参数创建模型

gmm = GaussianMixture(n_components=10, covariance_type ='full', \
              init_params = 'random', max_iter = 100, random_state=0)

适合您的数据(样本数 x 属性数),在我的情况下输入名称

gmm.fit(input)
print(gmm.means_.round(2))
cluster = gmm.predict(input)

集群包含我输入的每个样本的标签

如有不妥,欢迎补充

【讨论】:

  • 嗨,我想知道您是否可以在我的post 中查看类似的问题,提前致谢。
猜你喜欢
  • 2018-05-04
  • 2020-12-04
  • 1970-01-01
  • 2021-02-20
  • 2014-04-28
  • 1970-01-01
  • 2015-05-19
  • 2019-02-12
  • 2014-12-11
相关资源
最近更新 更多