用于聚类视觉上可分离的聚类的算法

时间:2016-07-29 22:50:07

标签: machine-learning cluster-analysis visualization distance pca

我在使用PCA后在2D中可视化数据集。 1维是时间,Y维是第一PCA组件。如图所示,点(A,B)之间存在相对较好的分离。但不幸的是,聚类方法(DBSCAN,SMO,KMEANS,Hierarchical)无法将这些点聚类在2个聚类中。正如你在A节中看到的那样,有一个相对连续性,这个连续的过程已经完成,B节开始了,与A和B之间的过去数据相比,存在相当大的差距。

如果您可以向我介绍任何方法和算法(或根据数据考虑其分布来设计任何度量标准),我将非常感激,以便能够在没有可视化的情况下在A和B之间进行分离。非常感谢你。

Mentioned Figure - Plot of points

这是上图(第一个)的2个PCA组件图。另一个也是其他数据集的组件图,我也得到了不好的结果。 Plot of PCA compnents-bad results

Plot of PCA components for another dataset-bad results

3 个答案:

答案 0 :(得分:2)

这是时间序列,显然您正在寻找更改点或想要细分此时间序列。

将此数据集视为二维x-y数据集,并且不要在此处使用群集;而是选择一个实际为时间序列设计的算法。

作为首发,编制series[x] - series[x-1],即一阶导数。您可能需要删除季节性以改善结果。没有聚类算法会做到这一点,他们没有季节性或时间的概念。

答案 1 :(得分:1)

如果PCA为您提供良好的分离,您可以在通过PCA特征向量投影数据后尝试进行聚类。如果您不想使用PCA,那么无论如何您都需要另一种数据投影方法,因为失败的聚类方法意味着您的数据在原始维度中是不可分离的。您可以查看非线性聚类方法,例如基于内核的聚类方法或spectral clustering。或者定义您自己的非欧几里德度量标准,这实际上只是另一种数据投影方法。

但使用PCA显然最适合您的情况(Occam razor:使用最适合您数据的模型)。

答案 2 :(得分:0)

我不知道你会有一个简单的时间设计一个算法来处理这种情况,这是危险的(通过现有的能力)接近“读我的思想”聚类。你有一个重要的小巷,你已经标记了分裂。你有一个差不多(1700,+ 1/3)和一个孤立的近(1850,0.45)。这些将使得很难说服一般用法算法在你想要的位置做出一个除法,尽管那个(我认为)仍然是计算上最明显的。

光谱聚类很有助于找到差距;我先尝试一下。你可能不得不要求它为3或4个簇分开你想要的一般。您也可以尝试使用SVM(善于在数据中找到小巷),但在无监督的环境中这样做是非常棘手的部分。

不,KMeans不会工作;它对密度或连接性不敏感。