用于聚类不规则形状的多维数据的最佳方法是什么?

我是机器学习和数据分析的新手,正在努力对我的数据进行聚类。我的数据有大约40,000个观测值和6个特征。

来自我的数据框的几个样本行

我尝试了各种聚类方法,包括K-Means、DBSCAN,并尝试了scipy的层次聚类方法。在预处理过程中,我对缺失数据进行了填补,并对所有数据进行了归一化处理。在完成主成分分析(PCA)将维度从4降至6后,我的数据看起来像新月形状,如下图中的蓝点所示。

我通过轮廓系数分析确定K-means使用10个聚类效果最佳,结果如下:

K-Means结果,每个质心由红色X标记

在对数据进行聚类后再进行PCA,结果变化不大。

DBSCAN本身决定使用4个聚类,并给出了4个聚类,但大部分数据被排除在这些聚类之外,并被标记为噪音。

对于层次方法,尝试使用linkage()时数据使用量过大,总是提示内存错误消息。

有什么方法可以对我的数据进行聚类吗?我的数据形状(新月形)是否适合其他建模方法?


回答:

不要不假思索地运行聚类

聚类算法不能作为黑盒使用。它们需要谨慎使用,否则只能得到垃圾数据。要正确使用它们,你需要理解每个算法的目标。K-means是一种最小二乘方法。如果你在未经适当归一化的数据上使用它,它会失败。

从你的图表来看,你的数据库中有一条错误记录,大大导致了那个“月亮”形状:所有东西都需要尽可能远离那个错误记录。

除此之外:1. 你是否为你的问题正确地缩放了数据?2. 你是否选择了适当的距离度量?

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注