当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy hierarchy.maxdists用法及代码示例


本文简要介绍 python 语言中 scipy.cluster.hierarchy.maxdists 的用法。

用法:

scipy.cluster.hierarchy.maxdists(Z)#

返回任何非单例集群之间的最大距离。

参数

Z ndarray

层次聚类编码为矩阵。有关详细信息,请参阅linkage

返回

maxdists ndarray

一个 (n-1) 大小的 numpy 双精度数组; MD[i] 表示以下任何集群(包括单例)之间的最大距离,包括索引为 i 的节点。更具体地说,MD[i] = Z[Q(i)-n, 2].max() 其中 Q(i) 是所有节点索引的集合,包括节点 i。

例子

>>> from scipy.cluster.hierarchy import median, maxdists
>>> from scipy.spatial.distance import pdist

给定链接矩阵 Zscipy.cluster.hierarchy.maxdists 计算生成的每个新簇(即链接矩阵的每一行)任何两个子簇之间的最大距离是多少。

由于层次聚类的性质,在许多情况下,这将只是合并形成当前子聚类的两个子聚类之间的距离 - 即 Z[:,2]。

但是,对于诸如 scipy.cluster.hierarchy.median 聚类这样的非单调聚类分配,情况并非总是如此:如果合并的两个聚类之间的距离小于其子聚类之间的距离,则可能会形成聚类。

我们可以在一个例子中看到这一点:

>>> X = [[0, 0], [0, 1], [1, 0],
...      [0, 4], [0, 3], [1, 4],
...      [4, 0], [3, 0], [4, 1],
...      [4, 4], [3, 4], [4, 3]]
>>> Z = median(pdist(X))
>>> Z
array([[ 0.        ,  1.        ,  1.        ,  2.        ],
       [ 3.        ,  4.        ,  1.        ,  2.        ],
       [ 9.        , 10.        ,  1.        ,  2.        ],
       [ 6.        ,  7.        ,  1.        ,  2.        ],
       [ 2.        , 12.        ,  1.11803399,  3.        ],
       [ 5.        , 13.        ,  1.11803399,  3.        ],
       [ 8.        , 15.        ,  1.11803399,  3.        ],
       [11.        , 14.        ,  1.11803399,  3.        ],
       [18.        , 19.        ,  3.        ,  6.        ],
       [16.        , 17.        ,  3.5       ,  6.        ],
       [20.        , 21.        ,  3.25      , 12.        ]])
>>> maxdists(Z)
array([1.        , 1.        , 1.        , 1.        , 1.11803399,
       1.11803399, 1.11803399, 1.11803399, 3.        , 3.5       ,
       3.5       ])

请注意,虽然创建最后一个簇时合并的两个簇之间的距离为 3.25,但有两个子簇(簇 16 和 17)的距离更大 (3.5)。因此,在这种情况下,scipy.cluster.hierarchy.maxdists 返回 3.5。

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.cluster.hierarchy.maxdists。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。