build_cluster_tree_dag

build_cluster_tree_dag(
    tree,
    children_map,
    leaf_batches,
    cluster_labels,
    n_clusters,
    *,
    straddle_threshold=0.15,
    max_tree_depth=None,
)

Build a DAG connecting BIRCH clusters to tree nodes they overlap with.

Parameters

tree : list[dict] Tree structure from idx.get_tree_structure(). children_map : dict[int, list[int]] {parent_id: [child_ids]}. leaf_batches : dict[int, np.ndarray] {node_id: item_indices} for leaf nodes. cluster_labels : (n,) int array Per-item BIRCH cluster ID. n_clusters : int The cluster resolution (e.g. 25), used for node naming. straddle_threshold : float Minimum overlap fraction to create a cluster→tree edge. max_tree_depth : int or None If set, only consider tree nodes up to this depth from root.

Returns

CategoryGraph DAG with tree-internal edges and cluster-to-tree edges. Node names: "tree_0", "tree_1", … for tree nodes; "cluster_25_0", "cluster_25_14", … for clusters.