我需要将一个简单的单变量数据集聚集到预设数量的集群中.从技术上讲,它更接近于分类或排序数据,因为它只有1D,但我的老板称它为聚类,所以我将坚持使用该名称.我所使用的系统使用的当前方法是K-means,但这看起来有点过分.
有没有更好的方法来执行此任务?
其他一些帖子的答案提到了KDE(核密度估计),但这是一种密度估算方法,它会如何工作?
我看到KDE如何返回密度,但是如何告诉它将数据拆分成箱?
我如何拥有与数据无关的固定数量的箱(这是我的要求之一)?
更具体地说,如何使用scikit学习来解决这个问题?
我的输入文件如下:
str ID sls
1 10
2 11
3 9
4 23
5 21
6 11
7 45
8 20
9 11
10 12
Run Code Online (Sandbox Code Playgroud)
我想将sls编号分组成簇或箱,这样:
Cluster 1: [10 11 9 11 11 12]
Cluster 2: [23 21 20]
Cluster 3: [45]
Run Code Online (Sandbox Code Playgroud)
我的输出文件将如下所示:
str ID sls Cluster ID Cluster centroid
1 10 1 10.66
2 11 1 10.66
3 9 1 10.66
4 23 2 21.33
5 21 2 21.33
6 11 1 10.66
7 …Run Code Online (Sandbox Code Playgroud) cluster-analysis machine-learning data-mining kernel-density scikit-learn