我想将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
中使用呢?
回答:
在2021年初,上述答案对我不起作用。现在,你不需要传递一个距离对象,而是传递一个包含马哈拉诺比斯协方差参数的字典。
上面的例子看起来会像这样:
import numpy as npfrom sklearn.datasets import make_classificationfrom sklearn.cluster import DBSCANX, y = make_classification()sklearn.cluster.DBSCAN(eps=0.15, min_samples=8, metric='mahalanobis', metric_params={'V':np.cov(X)}, algorithm='brute', leaf_size=30, n_jobs=-1)