我对聚类分析和数据科学的了解是肤浅的。我的问题是将以下数据分组到集群中:
Data = [40,45,50,60]
我的标准是当每对数字之间的差异在某个阈值(假设 10(内时对数字进行分组。因此,可能的集群是:
Cluster1 = [40,45] [50,60]
Cluster2 = [40,45,50] [60]
Cluster3 = [40][45,50][60]
我需要找到所有这些可能的集群,并根据特定条件选择其中一个。是否有任何数据科学库可用于执行此类聚类?
由于您的数据是一维的,因此问题变得比通常的多变量聚类方案容易得多。
您可以使用非常简单的策略来枚举所有可能的"聚类":
- 对数据进行排序
- 从最小值开始
- 如果下一个值在阈值内,则将其添加到群集并继续
- 回溯,并尝试不向现有集群添加值,而是开始一个新集群。
停止为所有内容寻找库,只需自己编写代码即可。聚类库解决了更复杂的问题,通常不包括这种简单的单变量策略。
聚类库,但你不能闭上眼睛选择一个,因为如果你这样做,那么整个分析都是有缺陷的。
你必须问自己一个问题,"你为什么要聚类?",是为了降低维度还是为了找到模式。你需要问的另一个问题是,how are the different variables related to each other?
您在上面显示的数据looks numerical
.对于数值数据进行分组,可以使用最简单的算法 k 均值。 looks numerical
的意思是它真的是数值或虚拟编码来表示文本值。
聚类中的另一个重要问题是确定并证明x
数量的组的存在。k-means
算法是一种分区方法,它需要输入possible number of clusters
。
总的来说,我建议你需要重新思考这个问题的可行性,并回答提出的问题,为你的问题得出一个有意义的解决方案。