我想将 Mahalanobis 距离与 DBSCAN 结合使用。

对于 NearestNeighbors,您可以传递 metric='mahalanobis'metric_params={'V': np.cov(X)} 以使用 Mahalanobis 距离。

DBSCAN(eps=0.15, min_samples=8, metric='...', algorithm='brute', leaf_size=30, n_jobs=-1)

但是如何使用 DBSCAN 做到这一点?

最佳答案

似乎您需要通过例如创建指标DistanceMetric

例如,您可以使用:

import numpy as np
from sklearn.datasets import make_classification
from sklearn.neighbors import DistanceMetric
from sklearn.cluster import DBSCAN

X, y = make_classification()
metric = DistanceMetric.get_metric('mahalanobis', V=np.cov(X))

sklearn.cluster.DBSCAN(eps=0.15, min_samples=8, metric=metric,
                       algorithm='brute', leaf_size=30, n_jobs=-1)

关于python - 在 DBSCAN 中使用替代距离度量,例如 Mahalanobis,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45031509/

10-12 21:17