层次聚类法

对于层次聚类法,我们不需要预先指定分类的数量,这个算方法会将每条数据都当作是一个分类,每次迭代的时候合并距离最近的两个分类,直到剩下一个分类为止。

因此聚类的结果是:顶层有一个大分类,这个分类下有两个子分类,每个子分类下又有两个子分类,依此类推,层次聚类也因此得命。

在合并的时候我们会计算两个分类之间的距离,可以采用不同的方法。如下图中的A、B、C三个分类,我们应该将哪两个分类合并起来呢?

单链聚类

在单链聚类中,分类之间的距离由两个分类相距最近的两个元素决定。如上图中分类A和分类B的距离由A1和B1的距离决定,因为这个距离小于A1到B2、A2到B1的距离。这样一来我们会将A和B进行合并。

全链聚类

在全链聚类中,分类之间的距离由两个分类相距最远的两个元素决定。因此上图中分类A和B的距离是A2到B2的距离,最后会将分类B和C进行合并。

平均链接聚类

在这种聚类方法中,我们通过计算分类之间两两元素的平均距离来判断分类之间的距离,因此上图中会将分类B和C进行合并。

下面让我们用单链聚类法举个例子吧!

我们来用狗的高度和重量来进行聚类:

在计算距离前我们是不是忘了做件事?

标准化!我们先将这些数据转换为修正的标准分。

然后我们计算欧几里德距离,图中高亮了一些最短距离:

根据下面的图表,你能看出哪两个品种的距离最近吗?

如果你看出是Border Collie和Portuguese Water Dog最近,那就对了!

计算过程

第一步:我们找到距离最近的两个元素,对他们进行聚类:

第二步:再找出距离最近的两个元素,进行聚类:

第三步:继续重复上面的步骤:

第四步:继续查找距离最近的元素,发现Border Collie已经属于一个分类的,因此进行如下图所示的合并:

这叫树状图,可以用来表示聚类。

动手实践

你能在下图的基础上继续完成聚类吗?

解答