Hierarchical clustering: agglomerative merge order
Intermediate classical-mlunsupervisedclusteringhierarchical
Implement:
def cluster_distance(points_a: np.ndarray, points_b: np.ndarray, linkage: str) -> float: ...
def agglomerative_fit(input: np.ndarray, n_clusters: int, linkage: str = "single") -> np.ndarray: ...
linkage is 'single', 'complete', or 'average', anything else raises ValueError.
- Reuse
01-knn's pairwise_distances.