在不知道 k 的情况下,哪种聚类算法适用于一维 Lists?

Posted

技术标签:

【中文标题】在不知道 k 的情况下,哪种聚类算法适用于一维 Lists?【英文标题】:Which clustering algorithm is suitable for one-dimensional Lists without knowing k? 【发布时间】:2013-12-12 09:17:10 【问题描述】:

我有一个像这样的一维列表

public class Zeit_und_Eigenschaft

    [Feature]
    public double Sekunden  get; set; 


//...
List<Zeit_und_Eigenschaft> lzue = new List<Zeit_und_Eigenschaft>();
//fill lzue

lzue可以

lzue.Sekunden
1
2
3
4
8
9
10
22
55
...

目标是在该列表中找到集群,即可以形成像 f.i. 这样的组的元素。在这个例子中

lzue.Sekunden
1
2
3
4

8
9
10

22

55

哪种聚类算法合适(不知道聚类个数k)? GMM?主成分分析?克米恩斯?其他?

【问题讨论】:

partitioning an float array into similar segments (clustering) 的可能重复项 【参考方案1】:

不要寻找聚类算法。

聚类是多变量数据的一个很好的术语,但是您的数据是一维的,因此您应该查看更古老的统计文献。例如。自然休息优化。

或者只是核密度估计。事实上,你会在 *** 上发现同样的问题几十次...

1D Number Array Clustering

Cluster one-dimensional data optimally?

partitioning an float array into similar segments (clustering)

Efficiently grouping similar numbers together

Clustering values by their proximity in python (machine learning?)

【讨论】:

【参考方案2】:

几个月前,MSDN 杂志上有一篇关于这个主题的好文章。他们使用了 k-means 算法。链接:

http://msdn.microsoft.com/en-us/magazine/jj891054.aspx

此外,作为 Andrew Ng 的在线机器学习课程的一部分,还有一些关于 k-means 聚类的视频。链接:

https://class.coursera.org/ml-003/lecture/preview

当你不知道 k 时,有一些算法可以搜索一个好的值。对 k-means + 肘进行网络搜索。

【讨论】:

以上是关于在不知道 k 的情况下,哪种聚类算法适用于一维 Lists?的主要内容,如果未能解决你的问题,请参考以下文章

K均值聚类法和系统聚类法有啥区别,这两种聚类方法的适用条件都是啥?

三种聚类方法:层次、K均值、密度

聚类算法

五种聚类算法一览与python实现

四种聚类方法之比较

R中K-MeansClaraC-Means三种聚类的评估