代码之家  ›  专栏  ›  技术社区  ›  Ian

Scikit学习DBSCAN集群不产生集群

  •  -1
  • Ian  · 技术社区  · 7 年前

    我有一个包含十几个维度(列)和大约200个观察值(行)的数据集。此数据集已使用规范化 quantile_transform_normalize

    但是,当我尝试使用Mahalanobis距离度量使用DBSCAN对数据进行聚类时,每个项都被聚类到-1中。根据文档:

    我不确定这意味着什么,但是我用KMeans得到了一些好的集群,所以我知道有一些东西可以集群——它不仅仅是随机的。

    下面是我用于聚类的代码:

    covariance = np.cov(data.values.astype("float32"), rowvar=False)
    clusterer = sklearn.cluster.DBSCAN(min_samples=6, metric="mahalanobis", metric_params={"V": covariance})
    clusterer.fit(data)
    

    data 是我在调试器中检查过的数字数据帧。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Has QUIT--Anony-Mousse    7 年前

    您需要选择参数 eps

    结果在很大程度上取决于这个参数。你可以在文献中找到一些估算它的方法。

    sklearn 应该 为这个参数提供一个默认值,因为它很少工作(在标准化的玩具数据上通常是可以的,但仅此而已)。

    200个实例可能太小,无法可靠地测量密度,特别是在有12个变量的情况下。