重磅干货,第一时间送达
前文推荐
前文说了k均值聚类,他是基于中心的聚类方法,通过迭代将样本分到k个类中,使每个样本与其所属类的中心或均值最近。
今天我们看一下无监督学习之聚类方法的另一种算法,层次聚类:
层次聚类前提假设类别直接存在层次关系,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点。创建聚类树有聚合聚类(自下而上合并)和分裂聚类(自上而下分裂)两种方法,分裂聚类一般很少使用,不做介绍。
聚合聚类
聚合聚类具体过程
对于给定的样本集合,开始将每个样本分到一个类,然后再按照一定的规则(比如类间距最小),将满足规则的类进行合并,反复进行,直到满足停止条件。聚合聚类三要素有:
距离或相似度(闵可夫斯基距离,相关系数、夹角余弦)
合并规则(最长/短距离,中心距离,平均距离)
停止条件(类个数或类直径达到或超过阈值)
聚合聚类算法
输入:n个样本组成的样本集合及样本间距离
输出:样本集合的层次化聚类
(1)计算n个样本两两之间欧氏距离
(2)构造n个类,每个类只包含一个样本
(3)合并类间距最小的两个类,构造一个新类
(4)计算新类与其他各类的距离,若类的个数为1,终止计算,否则回到(3)
动画表示:
python实现及案例
参考:
https://cdn-images-1.medium.com/max/800/1*ET8kCcPpr893vNZFs8j4xg.gif
https://github.com/MLEveryday/100-Days-Of-ML-Code
添加微信,我们在微信群接着聊
领取专属 10元无门槛券
私享最新 技术干货