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