【问题标题】:What clustering algorithm to use on 1-d data? [closed]在一维数据上使用什么聚类算法? [关闭]
【发布时间】:2011-09-03 02:21:24
【问题描述】:

我有一个数组中的数字列表。每个元素的索引是 X,值是 Y。我如何对这些数据进行分区/聚类? 如果我有一个数组,我只想要一组标记每个分区结束的值。由于我正在研究 Python,请务必提及是否有库可以做同样的事情。

谢谢。

【问题讨论】:

  • 数据是什么?你的应用是什么?您确定要聚类而不是分段吗?即您是否希望集群中的所有点都是连续的 X 个样本?这是您通常对时间序列执行的操作。

标签: python cluster-analysis


【解决方案1】:

K-Means 是一种非常简单的聚类算法,我会说在进行更复杂的事情之前先进行测试。 K-Means 算法http://en.wikipedia.org/wiki/K-means_clustering

强烈建议 http://en.wikipedia.org/wiki/K-means%2B%2B 正确初始化 K-Means。

如果您对 K-Means 不满意,那么您可以使用带有高斯混合 (http://en.wikipedia.org/wiki/Mixture_model) 的 EM 算法,代码不会太难,您可以使用 K-Means 对其进行初始化!

这些已经在 Python 中实现了 100 次,请检查任何机器学习工具箱。

【讨论】:

  • SciPy 在其集群包中有一个非常友好的 kmeans 实现。事实上,我今天只是在使用它,而我现在恰好在另一个标签中拥有这些文档:docs.scipy.org/doc/scipy/reference/cluster.vq.html
  • 不要在一维数据上使用 k-means。使用优化的一维技术。
猜你喜欢
  • 2011-12-13
  • 2021-08-21
  • 1970-01-01
  • 2020-02-21
  • 2020-07-11
  • 2021-08-24
  • 2021-05-25
  • 2011-11-24
  • 2011-09-23
相关资源
最近更新 更多