python - 对低密度差异的多维数据进行聚类的最佳聚类算法是什么?
问题描述
我目前正在做一个项目,我希望对多维数据进行聚类。我尝试了 K-Means 聚类和 DBSCAN 聚类,它们都是完全不同的算法。
K-Means 模型返回了一个相当不错的输出,它返回了 5 个集群,但我读过当维度很大时,欧几里得距离失败,所以我不知道我是否可以信任这个模型。
在尝试 DBSCAN 模型时,该模型产生了很多噪声点,并且在一个簇中聚集了很多点。我尝试了 KNN dist plot 方法来找到模型的最佳 eps,但我似乎无法使模型工作。这导致我得出结论,也许绘制的点的密度非常高,也许这就是我在一个集群中得到很多点的原因。
对于聚类,我使用了 10 个不同的数据列。我应该改变我正在使用的算法吗?对于多维数据和密度变化较小的算法,什么是更好的算法?
解决方案
您可以首先使用 PCA/LDA/t-sne 或自动编码器对数据集进行降维。然后运行标准的一些聚类算法。
另一种方法是您可以使用花哨的深度聚类方法。这篇博文很好地解释了他们如何在高维数据集上应用深度聚类。
推荐阅读
- sql - 如何在 WHERE 之后包含 JOIN?
- python - 如何恢复扭曲的图像
- reactjs - 如何将用户输入数据存储在控制台登录表单中从子组件提交到父组件?
- laravel - 如何访问与 whereHas 中的数据透视表相关的表?
- android - android 意图数据使用 if(!bundle.getString("ACCOUNT").equals(null) ) 但错误
- select - SPARQL 根据主题内容进行选择
- android - 如何检测电源按钮事件android应用程序
- vhdl - 将信号分配给自身失败
- hl7-fhir - What's the difference between id and identifier for a FHIR resource?
- python-3.x - 如何从图像中提取复杂区域