【问题标题】:Is there a way to partially cluster data which contains clusters but does not wholly consist of clusters?有没有办法对包含集群但不完全由集群组成的数据进行部分集群?
【发布时间】:2019-07-17 21:06:39
【问题描述】:

我有一些 2D 数据 (x,y),我需要确定在 x 方向上哪里有很多彼此靠近的数据点。有 3 个明显的集群,其中所有 x 点都靠得很近,其余数据不属于它们。我打算使用 k-means 聚类算法,但这似乎是为了对所有数据进行聚类,而我只想标记数据中显然是聚类的 3 个聚类数据,并将其余的标记为正常数据。

数据位于单独的 csv 文件中,我对其进行处理,然后读入一个大数据帧。到目前为止,在处理数据的过程中,我已经过滤掉了处理数据超过一定长度的文件,但这显然意味着有时部分集群会被排除在文件之外或正常数据被排除在外。

【问题讨论】:

  • 您对有多少“集群”数据和“标准”数据有一个粗略的猜测吗?是集群数据占大多数,还是主要是标准数据,只有一点点集群?如果大多数是聚类的,那么任何对噪声具有鲁棒性的聚类算法都可以。
  • 每个聚类大约有300个标准点和300个左右的点?
  • 太棒了!只要异常值不支配数据,那么您应该擅长任何稳健的聚类算法,包括 DBSCAN 作为所选答案状态。
  • 好的,谢谢!
  • 你自己也可以做一些研究……比如查看 sklearn 中的聚类算法列表。

标签: python machine-learning cluster-analysis data-analysis


【解决方案1】:

您可以尝试DBSCAN 之类的方法,它允许将点分类为“噪声”,这似乎就是您所追求的。有一个与 scikit 项目相关的分层版本,称为 hdbscan

Google 发现各种 documents 描述了 k-means 聚类的替代方案。 hdbscan 文档也很好地描述了comparing alternatives

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-27
  • 2018-01-05
  • 1970-01-01
相关资源
最近更新 更多