如何在Python中使用距离矩阵评估聚类的质量?

问题描述 投票:0回答:1

我正在尝试使用变量之间的相关距离自定义层次聚类过程,并且我需要评估聚类质量。但是,我在Python中找到的所有聚类质量评估方法都是面向观察的,并且不使用距离矩阵作为输入。

例如,sci-kit learn、SciPy 或 clusteval 中提供的聚类评估分数不提供如何使用距离矩阵作为输入来计算以下任何基于距离的质量指标:

  1. 戴维斯-布尔丁指数
  2. calinski_harabasz
  3. 剪影

您是否有任何解决方案可以在分层聚类中使用自定义距离指标来访问聚类质量?

基于距离矩阵的层次聚类

DistanceMatrix = 1-abs(pipe6.Stats())
N = DistanceMatrix.shape[0]
score = []
for K in range(2, N-1):
    hclus = skclus.FeatureAgglomeration(n_clusters=K,
                                        linkage="complete",
                                        metric="precomputed")
    hclus.fit(DistanceMatrix)
    clusters = hclus.labels_
    Quality = metrics.davies_bouldin_score(X=DistanceMatrix,
                                           labels=clusters)
    score.append(Quality)
python scikit-learn scipy hierarchical-clustering
1个回答
0
投票

使用 Silhouette,您可以使用

metric=precomputed
并传递距离矩阵。

© www.soinside.com 2019 - 2024. All rights reserved.