gpt4 book ai didi

python - 集群数量随着 scikit-learn DBSCAN 中 MinPts 的增加而增加

转载 作者:行者123 更新时间:2023-11-28 20:22:59 25 4
gpt4 key购买 nike

我使用来自 scikit-learn 的 DBSCAN 实现图书馆,我得到了奇怪的结果。估计的簇数随着参数 MinPts (min_samples) 的增加而增加,根据我对算法的理解,这不应该发生。

这是我的结果:

Estimated number of clusters:34 eps=0.9 min_samples=13.0
Estimated number of clusters:35 eps=0.9 min_samples=12.0
Estimated number of clusters:42 eps=0.9 min_samples=11.0 <- strange result here
Estimated number of clusters:37 eps=0.9 min_samples=10.0
Estimated number of clusters:53 eps=0.9 min_samples=9.0
Estimated number of clusters:63 eps=0.9 min_samples=8.0

我这样使用 scikit-learn:

X = StandardScaler().fit_transform(X)
db = DBSCAN(eps=eps, min_samples=min_samples, algorithm='kd_tree').fit(X)

X 是一个包含约 20 万个 12 维点的数组。

这可能是什么问题?

最佳答案

DBSCAN将点/样本分为三类:

  1. 核心:居住在人口稠密的街区,因此可能会形成集群。 scikit-learn 实现中的min_samples 是邻域密度参数。
  2. 密度可达:足够接近核心点以成为其集群的一部分。
  3. 异常值:其余所有。

现在,由于您需要更密集的核心点邻域,您获得的核心点会更少,但是核心点 x 失去其状态可能会产生三种影响,具体取决于其邻域外的密度:

  1. x 仍然可以从其前一个集群的核心点密度到达,其余核心点能够将集群保持在一起。簇数不变。
  2. x 仍然可以从至少两个核心点密度到达,但不再充当核心点之间的密度连接“桥梁”,导致它们形成单独的集群。聚类的数量增加,x 被分配给另一个点的聚类。
  3. x 及其相邻点都无法维持它们之前的集群并且它消失了,留下 x 作为异常值。集群数量减少。

关于python - 集群数量随着 scikit-learn DBSCAN 中 MinPts 的增加而增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21855410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com