Python:3 维空间中的 DBSCAN

2024-02-28

我一直在寻找 3 维点的 DBSCAN 实现,但运气不佳。有谁知道我的图书馆可以处理这个问题或者有这方面的经验吗?我假设 DBSCAN 算法可以处理 3 个维度,通过将 e 值设置为半径度量并通过欧几里德分离测量点之间的距离。如果有人尝试过实现这一点并愿意分享,我们也将不胜感激,谢谢。


您可以使用 sklearn 进行 DBSCAN。这是一些适合我的代码-

from sklearn.cluster import DBSCAN
import numpy as np
data = np.random.rand(500,3)

db = DBSCAN(eps=0.12, min_samples=1).fit(data)
labels = db.labels_
from collections import Counter
Counter(labels)

我得到的输出是-

Counter({1: 342, 10: 30, 31: 13, 13: 11, 30: 10, 24: 5, 29: 5, 2: 4, 18: 4,
19: 4, 28: 4, 49: 4, 3: 3, 17: 3, 23: 3, 32: 3, 7: 2, 9: 2, 12: 2, 14: 2, 15: 2,
16: 2, 20: 2, 21: 2, 26: 2, 39: 2, 41: 2, 46: 2, 0: 1, 4: 1, 5: 1, 6: 1, 8: 1, 11:
1, 22: 1, 25: 1, 27: 1, 33: 1, 34: 1, 35: 1, 36: 1, 37: 1, 38: 1, 40: 1, 42: 1,
43: 1, 44: 1, 45: 1, 47: 1, 48: 1, 50: 1, 51: 1, 52: 1, 53: 1, 54: 1, 55: 1})

因此,聚类识别出 55 个簇,并计算每个簇中的点数,如上所示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:3 维空间中的 DBSCAN 的相关文章

随机推荐