前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【机器学习】层次聚类

【机器学习】层次聚类

作者头像
yuquanle
发布2020-04-15 15:33:37
1.1K0
发布2020-04-15 15:33:37
举报

本文介绍了层次聚类算法。首先抛出了聚类理论中两个关键问题:何为类,何为相似,同时介绍了聚类中常用两种评价指标:内部指标和外部指标。然后介绍了层次聚类算法:凝聚层次聚类和分裂层次聚类算法,两者皆以样本集作为类表示,常用欧式距离作为相似性度量,分层次聚类。最后介绍了层次聚类算法的特点,可视化,复杂度。

作者 | 文杰

编辑 | yuquanle

聚类理论

一般来说,聚类是在训练样本的标签信息不知的情况下,学习样本内在的性质和规律,将有限的集合划分成类。

根据“方以类聚,物以群分”的思想,类内对象尽可能的相似,类间对象尽可能不相似。因此,吾师言:聚类中两个关键的问题是:何为类?何为类内相似,类间不相似?以下所有的聚类模型皆从这两点出发。

由于缺少样本标签,我们很难定义类和相似性,比如下面的问题:

按照颜色聚类可以分类三类,按照形状聚类可以分类两类,关键问题在于如何定义类,定义相似性。所以吾师还言:聚类一般不是一个任务的最终目标,而是一个预处理的过程。

聚类的评价指标有两种:

  1. 内部指标,指导思想是类内紧致性和类间分离性,比如Xie-Beni指标,DB指标;
  2. 外部指标,假设数据集有标注,按有监督学习的评价指标进行评价。

可以看出,外部指标有很大的问题,那就是聚类学到的数据规律不一定是标签,这对聚类算法的评价是不可靠的,但是对于只看结果,不评价模型的好坏是可以的,当然拿聚类的结果与有监督学习的结果对比是“无赖”的。

层次聚类

层次聚类的类表示可以看作是基于样本的,表示属于第的样本集合,即作为第类的类表示。类相似性度量可以用“欧式距离”。

层次聚类分为两种,一种是自底向上的凝聚层次聚类,一种是自顶向下的分裂层次聚类。两者的区别在于前者一开始将每一个样本看作一类,通过不断的合并最相似的两个簇,直到类;后者一开始将所有样本看作一类,通过最小化损失(类紧致)分裂为类。

凝聚层次聚类

输入:样本数据,相似性度量函数,聚类簇数

输出:类样本

1)初始化每个样本为一个簇:

2)计算样本两两之间的距离:

3)通过相似性度量函数,找出最相似的两个簇进行合并:

最小距离:

最大距离:

平均距离:

4)直到簇数为,否则循环2)

分裂层次聚类

输入:样本数据,损失函数,聚类簇数

输出:类样本

1)初始化所有样本为一个簇:

2)计算样本两两之间的距离:

3)计算当前所有簇,的损失函数,选择损失最大的簇进行二分,计算该簇下两点间距离:

选择簇中最远的两个点作为类中心将簇进行二分;

4)直到簇数为,否则循环2)

值得注意的是分裂层次聚类在进行二分时,可以采用kmeans进行二分,这样时间复杂度就不再是.

层次聚类算法特点:

  • 可视化
  • 采用计算样本两两之间的距离,时间复杂度为
  • 凝聚和分裂的不可逆性

The End

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI小白入门 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 聚类理论
  • 层次聚类
    • 凝聚层次聚类
      • 分裂层次聚类
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档