其他分享
首页 > 其他分享> > 用一个例子学习层次聚类

用一个例子学习层次聚类

作者:互联网

用一个例子学习层次聚类

H 分层聚类 真的用的不多,如果用scikit-learn的话,语法和其他模型差别不大,除了构造函数的参数。

虽然几乎所有的 sklearn 模型总是被当作黑匣子使用(毕竟没有人总是在轮子上建立一家汽车公司),但找到一种方法来记住这些不常见的模型很重要,经过思考后,我想我会单独写这篇文章,用一个例子来说明算法。

这个例子是加拿大几个城市之间的距离,然后是“最近”的距离来做一个集群。它是在 IBM 的技能网络中找到的,我将在此处列出以直观地说明它。

假设我们要根据彼此之间的距离对加拿大的六个城市进行聚类。它们是多伦多(TO)、渥太华(OT)、温哥华(VA)、蒙特利尔(MO)、温尼伯(WI)和埃德蒙顿(ED)。

我们在这个阶段构造一个距离矩阵,其中第 i 行第 j 列的数字是 i 和 j 个城市之间的距离。

dis(i , j)

事实上,这张表显示了每对城市之间的距离。该算法通过将每个城市分配到其自己的集群开始。因此,如果我们有六个城市,我们就有六个集群,每个集群只包含一个城市。让我们通过显示其名称的前两个字符来记下每个城市。

第一步是确定哪些城市,我们从现在开始称它们为集群,合并成一个集群。通常,我们想把这两个 最近的 根据选择的距离进行聚类。查看距离矩阵,MO 和 OT 是 最近的 集群 所以 我们用它们组成一个集群,

请注意,我们在这里只使用了一个简单的一维距离特征,但是我们的对象可以是多维的,距离测量也可以是 ** 欧几里得** , ** 皮尔逊** , ** 平均距离或许多其他** 取决于数据类型和领域知识 .

无论如何,我们必须合并这些 最接近的两个 距离矩阵中的城市也是如此。

因此,在构建集群时行和列被合并。

本质上 ,行和列在聚类合并和距离更新时合并。这是实现此类集群的常用方法,并且具有缓存集群之间的距离的好处。同理,凝聚算法通过合并集群进行,我们重复它,直到所有集群都合并并且树完成。这意味着,直到所有城市都聚集成一个大小为六的集群。层次聚类通常可视化为 树状图 如这张幻灯片所示。

树状图:

本质上 , 层次聚类 不需要 预先指定数量的集群。但是,在某些应用程序中,我们希望对不相交的集群进行分区,就像在平面集群中一样。在这些情况下,需要在某些时候削减层次结构。例如这里,切入一个 特定的相似度( 临界点 ) ,我们创建了三个相似城市集群。

希望你作为读者,包括我,会记住一个例子中的算法。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/7592/15270108

标签:层次,MO,合并,距离,例子,集群,聚类,OT
来源: https://www.cnblogs.com/amboke/p/16645187.html