首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用替代距离度量,如带DBSCAN的Mahalanobis

使用替代距离度量,如带DBSCAN的Mahalanobis
EN

Stack Overflow用户
提问于 2017-07-11 18:08:20
回答 2查看 2.7K关注 0票数 5

我想结合使用Mahalanobis距离和DBSCAN

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

代码语言:javascript
复制
DBSCAN(eps=0.15, min_samples=8, metric='...', algorithm='brute', leaf_size=30, n_jobs=-1)

但是如何使用DBSCAN来实现呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-06 07:06:23

在2021年初,上面的答案对我来说并不适用。现在,您不需要传递distance对象,而是传递一个带有mahalanobis协方差参数的字典。

上面的示例如下所示:

代码语言:javascript
复制
import numpy as np
from sklearn.datasets import make_classification
from sklearn.cluster import DBSCAN

X, 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)
票数 4
EN

Stack Overflow用户

发布于 2017-07-11 20:24:01

看起来你需要通过创建一个指标,例如DistanceMetric

例如,您可以使用:

代码语言:javascript
复制
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)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45031509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档