Jai*_*era 8 python dbscan scikit-learn rapids
阅读周围,我发现可以将预先计算的距离矩阵传递到SKLearn DBSCAN中。不幸的是,我不知道如何通过它进行计算。
假设我有一个包含 100 个元素的一维数组,其中只有节点的名称。然后我有一个 100x100 的 2D 矩阵,每个元素之间的距离(顺序相同)。
我知道我必须这样称呼它:
db = DBSCAN(eps=2, min_samples=5, metric="precomputed")
对于节点之间的距离为 2 且节点簇最少为 5 个的情况。另外,使用“预先计算”来指示使用二维矩阵。但是如何传递计算信息呢?
如果使用 RAPIDS CUML DBScan函数(GPU 加速) ,可能会出现同样的问题。
文档:
\n\n\nRun Code Online (Sandbox Code Playgroud)\nclass sklearn.cluster.DBSCAN(eps=0.5, *, min_samples=5, metric=\'euclidean\', \nmetric_params=None, algorithm=\'auto\', leaf_size=30, p=None, n_jobs=None)\n[...]\n
\n\nRun Code Online (Sandbox Code Playgroud)\n[...]\nmetricstring, or callable, default=\xe2\x80\x99euclidean\xe2\x80\x99\nThe metric to use when calculating distance between instances in a feature array. If \nmetric is a string or callable, it must be one of the options allowed by \nsklearn.metrics.pairwise_distances for its metric parameter. If metric is \n\xe2\x80\x9cprecomputed\xe2\x80\x9d, X is assumed to be a distance matrix and must be square. X may be a \nGlossary, in which case only \xe2\x80\x9cnonzero\xe2\x80\x9d elements may be considered neighbors for \nDBSCAN.\n[...]\n
因此,您通常的调用方式是:
\nfrom sklearn.cluster import DBSCAN\n\nclustering = DBSCAN()\nDBSCAN.fit(X)\nRun Code Online (Sandbox Code Playgroud)\n如果你有一个距离矩阵,你可以:
\nfrom sklearn.cluster import DBSCAN\n\nclustering = DBSCAN(metric=\'precomputed\')\nclustering.fit(distance_matrix)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
10895 次 |
| 最近记录: |