sklearn: 获取点到最近聚类的距离

我正在使用像DBSCAN这样的聚类算法。

它返回了一个名为-1的“聚类”,这些是没有属于任何聚类的点。对于这些点,我希望确定它们到最近聚类的距离,以便获得一个衡量这些点异常程度的指标。这是可能的吗?或者有没有替代的指标方法?


回答:

答案将取决于你选择的连接策略。我将以单连接为例进行说明。

首先,你可以构建数据的距离矩阵。

from sklearn.metrics.pairwise import pairwise_distancesdist_matrix = pairwise_distances(X)

然后,你将提取最近的聚类:

for point in unclustered_points:    distances = []    for cluster in clusters:        distance = dist_matrix[point, cluster].min()  # 单连接        distances.append(distance)    print("The cluster for {} is {}".format(point, cluster)

编辑:这有效,但正如Anony-Mousse指出的,它是O(n^2)的。考虑核心点是一个更好的主意,因为它可以减少你的工作量。此外,这与质心连接有些相似。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注