类文档

某个数据集的层次聚类(树状图)。

层次聚类意味着我们不仅知道元素如何分离成组,还知道单个元素如何合并成更大子组的确切历史。

此类内部通过一个 n 行 2 列的矩阵(或更精确地说,一个由大小为 2 的列表组成的列表)来表示层次结构。这与原始格式完全相同,该格式由igraph的 C 核心。矩阵的第 i 行包含在时间步 i 合并的两个聚类的索引。合并后的组将由 ID n + i 表示,其中 i 从 1 开始。在后续步骤中,将引用合并组的 ID,而不是其任何单个成员的 ID。因此,小于或等于 n 的 ID(其中 n 是矩阵中的行数)表示数据集的原始成员(ID 从 0 到 n),而从 n + 1 开始的 ID 表示合并组。例如,请查看一个给定五节点聚类的树状图和内部表示。

  0 -+
     |
  1 -+-+
       |
  2 ---+-+        <====>   [[0, 1], [3, 4], [2, 5], [6, 7]]
         |
  3 -+   |
     |   |
  4 -+---+---
方法 __init__ 创建层次聚类。
方法 __plot__ 在给定的 Cairo 上下文或 matplotlib Axes 上绘制树状图。
方法 __str__ 未文档化
方法 format 将树状图格式化为外部格式。
方法 names.setter 设置树状图中节点的名称
方法 summary 返回树状图的摘要。
属性 merges 以矩阵格式返回已执行的合并
属性 names 返回树状图中节点的名称
静态方法 _convert_matrix_to_tuple_repr 将聚类的矩阵表示转换为元组表示。
方法 _traverse_inorder 对合并树进行中序遍历。
实例变量 _merges 未文档化
实例变量 _names 未文档化
实例变量 _nitems 未文档化
实例变量 _nmerges 未文档化
def __init__(self, merges): (源代码)

创建层次聚类。

参数
merges合并历史,可以是矩阵格式或元组格式
def __plot__(self, backend, context, *args, **kwds): (源代码)

在给定的 Cairo 上下文或 matplotlib Axes 上绘制树状图。

支持的关键字参数有

  • 方向:树状图的方向。必须是以下值之一从左到右, 从下到上, 从右到左从上到下。单个元素总是放置在前者边缘,合并操作向后者边缘进行。可能的别名水平 = 从左到右, 垂直 = 从下到上, lr = 从左到右, rl = 从右到左, tb = 从上到下, bt = 从下到上。默认值为从左到右.
def __str__(self): (源代码)

未文档化

def format(self, format='newick'): (源代码)

将树状图格式化为外部格式。

当前只支持 Newick 格式。

示例

>>> d = Dendrogram([(2, 3), (0, 1), (4, 5)])
>>> d.format()
'((2,3)4,(0,1)5)6;'
>>> d.names = list("ABCDEFG")
>>> d.format()
'((C,D)E,(A,B)F)G;'
def names(self, items): (源代码)

设置树状图中节点的名称

def summary(self, verbosity=0, max_leaf_count=40): (源代码)

返回树状图的摘要。

摘要包括叶子和分支的数量,以及树状图的 ASCII 艺术表示(除非它太大)。

参数
详细程度确定是否应打印树状图的 ASCII 表示。详细程度为零时仅打印叶子和分支的数量。
最大叶子数在 ASCII 表示中打印的最大叶子数量。如果树状图的叶子数量超过此限制,则即使详细程度大于或等于 1,也不会打印 ASCII 表示。
返回
树状图的摘要字符串。

以矩阵格式返回已执行的合并

返回树状图中节点的名称

def _convert_matrix_to_tuple_repr(merges, n=None): (源代码)

将聚类的矩阵表示转换为元组表示。

参数
merges聚类的矩阵表示
n未文档化
返回
聚类的元组表示
def _traverse_inorder(self): (源代码)

对合并树进行中序遍历。

中序遍历返回最后一层节点应绘制的顺序,以确保没有边相互交叉。

返回
中序遍历的结果列表。

未文档化

未文档化

未文档化

未文档化