我使用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维点的数组。
这里有什么问题?
答案 0 :(得分:7)
DBSCAN将点/样本分为三类:
min_samples
是邻域密度参数。现在,因为你需要一个更密集的核心点邻域,你得到更少的核心点,但核心点 x 失去其状态可以有三种效果,具体取决于其邻域之外的密度: / p>