层次聚类(Hierarchical clustering)
wikipedia 这样写到:Connectivity based clustering, also known as hierarchical clustering.In the data mining community these methods are recognized as a theoretical foundation of cluster analysis, but often considered obsolete.可见,层次聚类这类算法实际上基于数据之间的连通性,如今这类方法更多的作为聚类分析的一种理论基础,单纯的层次聚类算法很少被实际应用。
如何理解这种层次性呢?At different distances, different clusters will form, which can be represented using a dendrogram(系统树图), which explains where the common name “hierarchical clustering” comes from: these algorithms do not provide a single partitioning of the data set, but instead provide an extensive hierarchy of clusters that merge with each other at certain distances.从结果上看,聚类的结果是把原始数据聚成带有层次结构的簇;从过程上看,算法的过程集中于如何在数据空间构建树形聚类结构。
自顶向下的层次聚类
1. 主要想法:把整个数据集视作一个簇,然后把一个簇分成几个簇,接着再分别把每一个簇分成更小的簇,如此反复下去,直到满足要求为止。
本质上可以视作一种空间的分解,或者说“分而治之”的思想。多个不同的层次来看数据空间,这其实也是一种多分辨率的思想,类似于图像处理中的“金字塔”。
2. 关键点:分解+子类
分解:大类分解成更小的类,如何使得分类后的小类之间的相似度尽可能小,而类内数据之间的相似度尽可能大,即类间类内距离的测度
分解:类间、类内的相似度的大小程度的界定;
子类:每一次分解得到新的子类(数目,大小,代表点等)如何确定
3. 存在的问题:上述列出的几个关键点其实都跟该算法的问题紧密相关,作为一种无监督的聚类算法,由于是无监督的,事先并不知道最终要聚成多少类,那么又如何得知构建层次的时候中间层要聚成多少类呢?因此每一层的聚类数目是很难确定的,这样聚类层次就会呈现多样化,算法的稳定性也随之降低。另外,一个最突出的问题,自顶向下的方案,如果上层对数据分类错误,那么进一步分层量化时就会越错越远,这就要求,越是高层,越是尽可能的不能分错(高层类的数目少,但对分类精度要求大)。由于高层即使分错了,下面的层也不会纠错,因此这种单纯的自顶向下的层次聚类方案的聚类结果很粗糙,导致这种粗糙的最主要原因是由构建的树图结构造成的。
4. 主要优点:可以借鉴树图结构实现对数据的快速量化,分解的思路使得该算法适合对大规模的数据集进行处理。
5. 改进的方向:改进树图的结构,建立纠错机制,提高算法的聚类精度。比如传统的树形结构中,从根节点开始对每一个树节点只有唯一可达路径,这是不可靠的,可以考虑从根节点通过多条路径来到达目的节点。另外,层次聚类中只用了树形结构中的节点之间的父子关系,而兄弟关系(同级别的节点之间的近邻信息被抛弃)没有用到。
6. 参考文献:Liao K, Liu G, Xiao L, et al. A sample-based hierarchical adaptive K-means clustering method for large-scale video retrieval[J]. Knowledge-Based Systems, 2013, 49: 123-133.