1.什么是层次聚类
def perfrom_clustering(X,connectivity,title,num_clusters=3,linkage='ward'):
plt.figure()
model = AgglomerativeClustering(linkage=linkage,
connectivity=connectivity,n_clusters=num_clusters)
model.fit(X)
层次聚类是一组聚类算法,通过不断分接或合并集群来构建树状集群,层次聚类可以用一棵树来表示。
层次聚类算法可以自下而上和自上而下。在自下而上算法中,每个数据点都被看做是一个单独的集群,这些集群不断合并,知道所有的集群合并成一个举行集群,这被称为凝聚层次聚类。与之相反,自上而下层次的算法是从一个巨大的集群开始,不断的分接,直到所有的集群变为一个个单独的数据点。
本片博客主要参考了:http://nlp.stanford.edu/IR-book/html/htmledition/hierarchical-agglomerative-clustering-1.html
2.详细步骤
首先导入需要的程序包:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import AgglomerativeClustering
from sklearn.neighbors import kneighbors_graph
定义一个实现凝聚层次聚类的函数