gpt4 book ai didi

python - DBSCAN 中的预计算距离矩阵

转载 作者:行者123 更新时间:2023-12-04 17:26:48 24 4
gpt4 key购买 nike

环顾四周,我发现可以将预先计算的距离矩阵传递给 SKLearn DBSCAN .不幸的是,我不知道如何通过它进行计算。
假设我有一个包含 100 个元素的一维数组,其中只有节点的名称。然后我有一个 2D 矩阵,100x100,每个元素之间的距离(以相同的顺序)。
我知道我必须调用它:db = DBSCAN(eps=2, min_samples=5, metric="precomputed")对于 2 个节点和至少 5 个节点集群之间的距离。此外,使用“预先计算”来指示使用二维矩阵。但是如何传递计算信息呢?
如果使用 RAPIDS,同样的问题可能适用 CUML DBScan功能(GPU 加速)。

最佳答案

documentation :

class sklearn.cluster.DBSCAN(eps=0.5, *, min_samples=5, metric='euclidean', 
metric_params=None, algorithm='auto', leaf_size=30, p=None, n_jobs=None)
[...]

[...]
metricstring, or callable, default=’euclidean’
The metric to use when calculating distance between instances in a feature array. If
metric is a string or callable, it must be one of the options allowed by
sklearn.metrics.pairwise_distances for its metric parameter. If metric is
“precomputed”, X is assumed to be a distance matrix and must be square. X may be a
Glossary, in which case only “nonzero” elements may be considered neighbors for
DBSCAN.
[...]

所以,你通常这样称呼它:
from sklearn.cluster import DBSCAN

clustering = DBSCAN()
DBSCAN.fit(X)
如果你有一个距离矩阵,你可以:
from sklearn.cluster import DBSCAN

clustering = DBSCAN(metric='precomputed')
clustering.fit(distance_matrix)

关于python - DBSCAN 中的预计算距离矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62695842/

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