merge_to_max_k
merge_to_max_k(point_labels, embeddings, max_k=12)Merge communities to ≤max_k using complete linkage on community centroids.
Returns point_labels unchanged if already ≤ max_k. Otherwise: compute community centroids → L2-normalize → complete linkage → fcluster at max_k → remap point labels → reassign points.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| point_labels | int32 array (N,) of cluster IDs. | required | |
| embeddings | (N, D) embedding matrix (float32). | required | |
| max_k | Maximum number of clusters to keep (default 12). | 12 |
Returns
| Name | Type | Description |
|---|---|---|
| int32 array (N,) of merged cluster IDs (0-based contiguous). |