【问题标题】:How to set good parameters clustering high density data with DBSCAN?如何使用 DBSCAN 设置好的参数对高密度数据进行聚类?
【发布时间】:2020-01-02 01:19:42
【问题描述】:

我想使用 DBSCAN 根据给定位置 (X,Y,Z) 对一些恒星进行聚类,我不知道如何调整数据以获得正确数量的聚类以在之后绘制它?

这就是数据的样子 这些数据的正确参数是什么?

行数为1.202672e+06

import pandas as pd
data = pd.read_csv('datasets/full_dataset.csv')
from sklearn.cluster import DBSCAN
clusters=DBSCAN(eps=0.5,min_samples=40,metric="euclidean",algorithm="auto")

【问题讨论】:

  • 大声笑,为什么你的行数是两倍?什么是“正确”的集群数量?聚类没有对错。

标签: python cluster-analysis data-science dbscan


【解决方案1】:

min_samples 可以说是最难选择的一种,但您可以通过查看结果并确定您可以接受多少噪音来决定这一点。

可以通过运行 k-NN 来帮助选择 eps,以了解数据的密度分布。我相信DBACAN论文推荐的更详细。甚至可能有一种方法可以在 python 中绘制它(在 R 中它是 kNNdistplot)。

我更喜欢使用 OPTICS,它本质上是同时计算所有 eps 值。但是,我在 python 或 R 中都没有找到一个像样的实现。事实上,python 中有一个不正确的实现,它根本不遵循原始的 OPTICS 论文。

如果你真的想使用光学,我建议使用使用 ELKI 的 java 实现。

如果其他人听说过适当的 python 实现,我很想听听。

如果您想走试错路线,请从小得多的 eps 开始,然后从那里开始。

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 2014-07-24
    • 2013-04-15
    • 2017-05-17
    • 2017-11-01
    • 2018-12-08
    • 2020-07-28
    • 2016-08-12
    • 1970-01-01
    相关资源
    最近更新 更多