1 层次聚类与距离计算
通过层次聚类我们可以对原有样本数据做层次上的划分。相反,K-Means算法本身是扁平化的,不具备任何层次的概念。
K-Means的不足之处:
- 使用K-Means需要指定K值
- 对于不规则的样本,K-Means算法的表现也会比较差
- K-Means算法在聚类时不能捕获层次关系
层次聚类算法的好处就是通过算法自动给数据做分层,数据之间的层次关系一目了然
对于层次聚类,通常有两种方法,一种是自上而下的,另外一种是自下而上
2 从下到上的层次聚类
核心思想:一开始每一个点是一个cluster, 然后把类似的cluster慢慢做合并,到了最后就只剩一个cluster了,这个时候即可以停下来。
等做完所有步骤之后,我们就可以从现有的结果中选择合理的聚类结果。
比如我们设定一个阈值,然后基于这个阈值就可以得到相应的clusters。
自下而上层次聚类过程的一个核心是:相似度的计算,因为涉及到了不同cluster之间的合并。
三种常见的距离计算的方法:
- 最短距离
- 最长距离
- 平均距离
一般比较稳定的是第三种方法
3 从上到下的层次聚类
一开始我们只有一个大的cluster, 由所有的样本组成,之后逐步把每一个cluster切分成更小的,直到每一个cluster只包含一个样本为止,这也意味着整个流程已完成。
每次需要考虑的是如何把一个大的cluster切分成两个clusters,所以这里的切分标准格外重要。
但相比自下而上的方法,自上而下的聚类算法用的并不是那么多,大致了解一下就可以了。
介绍一个比较经典的自上而下的方法:最小生成树(minimum spanning tree)
对于最小生成树,有几个比较常见的算法,分别是Prime和Kruskal算法。