【问题标题】:Hierarchical Clustering层次聚类
【发布时间】:2018-10-04 09:32:43
【问题描述】:
我阅读了一些资源,并了解了层次聚类的工作原理。但是,当我将它与 k-means 聚类进行比较时,在我看来 k-means 确实构成了特定数量的聚类,而层次分析向我展示了如何对样本进行聚类。我的意思是我在层次聚类中没有得到特定数量的聚类。我只得到一个关于如何构成集群以及样本之间关系的一部分的方案。
因此,我不明白在哪里可以使用这种聚类方法。
【问题讨论】:
标签:
machine-learning
hierarchical-clustering
【解决方案2】:
在 k-means 聚类中,k 是一个超参数,您需要找到它才能将数据点划分为聚类,而在层次聚类(让我们采用一种类型的层次聚类,即凝聚)中,首先要考虑数据集中的所有点作为一个集群,然后根据相似性度量合并两个集群并重复此操作,直到获得一个集群。我会用一个例子来解释。
假设您的数据集中最初有 13 个点 (x_1,x_2,....,x_13),所以一开始您将有 13 个集群,现在第二步让您获得 7 个集群 (x_1-x_2 , x_4-x_5 , x_6-x_8, x_3-x_7, x_11-x_12, x_10, x_13) 基于点之间的相似性。在第三步中,假设您得到 4 个集群(x_1-x_2-x_4-x_5,x_6-x_8-x_10,x_3-x_7-x_13,x_11-x_12),您将进入一个步骤,其中数据集中的所有点形成一个聚类,这也是凝聚聚类算法的最后一步。
因此,在层次聚类中,没有超参数,具体取决于您的问题,如果您想要 7 个集群,那么如果您想要 4 个集群,则在第二步停止,然后在第三步停止,以此类推。
层次聚类的一个实际优势是可以使用树状图可视化结果。如果您事先不知道要查找的聚类数量(通常是这种情况……),您可以使用树状图来帮助您选择 k,而无需创建单独的聚类。树状图还可以深入了解数据结构,帮助识别异常值等。层次聚类也是确定性的,而随机初始化的 k-means 可以在对相同数据运行多次时给出不同的结果。
希望这会有所帮助。