一维数据聚类

20220924 -

在以往的学习中,通常聚类行为都是应用于高维数据,或者利用2维数据,最为实验性验证过程。
但是最近遇到了一项任务,对某数据处理的结果进行处理,处理完之后,数据只有一维,如果数据内容比较简单,那么用直方图绘制之后,可以发现只有两个簇,而且距离也比较远。当然,这种情况比较少。

那么这里其实引发一个问题,怎么来划分开两个类别,这也是我思考的问题。一开始的时候,我也不太理解,就想着利用聚类的方法。那么首先想到的就是kmeans这种方式咯。

但是在查了查相关的文章之后,发现了有人针对kmeans-1d发表了相关的文章,具体内容我没有去进行查看,而是针对基于KDE进行聚类的方式进行了查看。

利用KDE进行聚类比较直观,通过KDE获取数据分布的概率密度函数之后,然后获取局部最优点,包括最大最小的这些,然后利用这些作为类别的分割点,文章[1]针对这部分内容给出了相关的代码,文章[2]也与这个类似。文章[3]也给出了相关的讨论。

实际上,最后也没有采用KDE这种方法,因为他获取到的局部最优点太多了,本质上,我觉得还是需要一个比较明确的指标进行划分。

参考

[1]How would one use Kernel Density Estimation as a 1D clustering method in scikit learn?
[2]1D Clustering with KDE

[3]Clustering values by their proximity in python (machine learning?) [duplicate]

你可能感兴趣的:(机器学习)