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

时间:2013-11-26 23:58:00

标签: c# cluster-analysis data-mining k-means

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

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? PCA? K均值?其他

2 个答案:

答案 0 :(得分:6)

不要寻找群集算法。

群集是多变量数据的理想术语,但您的数据是一维的,因此您应该查看更旧的统计文献。例如。自然休息优化。

或者只是核密度估计。事实上,你会在stackoverflow上找到同样的问题数十次......

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?)

答案 1 :(得分:1)

几个月前,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 + elbow。