09 聚类算法 - 层次聚类 - CF-Tree、BIRCH、CURE

08 聚类算法 - 聚类算法的衡量指标

五、层次聚类概述

层次聚类方法对给定的数据集进行层次的分解,直到满足某种条件为止,传统的层次聚类算法主要分为两大类算法:

1、凝聚的层次聚类:AGNES算法 (AGglomerative NESting)==>采用自底向上的策略。最初将每个对象作为一个簇,然后这些簇根据某些准则被一步一步合并,两个簇间的距离可以由这两个不同簇中距离最近的数据点的相似度来确定;聚类的合并过程反复进行直到所有的对象满足簇数目。

2、分裂的层次聚类:DIANA算法 (DIvisive ANALysis)==>采用自顶向下的策略。首先将所有对象置于一个簇中,然后按照某种既定的规则逐渐细分为越来越小的簇(比如最大的欧式距离),直到达到某个终结条件(簇数目或者簇距离达到阈值);


AGNESDIANA算法优缺点:
1、简单,理解容易。
2、合并点/分裂点选择不太容易。
3、合并/分类的操作不能进行撤销。
4、大数据集不太适合。
5、执行效率较低O(t*n2),t为迭代次数,n为样本点数。


AGNES算法中簇间距离:

1、最小距离(SL聚类)
两个聚簇中最近的两个样本之间的距离(single/word-linkage聚类法);
最终得到模型容易形成链式结构。

2、最大距离(CL聚类)
两个聚簇中最远的两个样本的距离(complete-linkage聚类法);
如果存在异常值,那么构建可能不太稳定。

3、平均距离(AL聚类)
两个聚簇中样本间两两距离的平均值(average-linkage聚类法);
两个聚簇中样本间两两距离的中值(median-linkage聚类法);

AGNES层次聚类 - 不同合并策略
建议使用word策略对样本进行分类。

六、层次聚类优化算法

1、CF-Tree:

CF-Tree(Cluster Feature Tree):每个节点是由三个聚类特征组成。这三个聚类特征构成一个三元组,用(N, LS, SS)来表示。

其中:
N 表示这个CF中包含的样本数量;
LS 表示这个CF中包含的样本点的向量和;
SS 表示这个CF中包含的样本点各个特征的平方和。

CF-Tree中父节点的某个CF值等于其指向的所有子节点CF值的总和。

CF-Tree 的几个关键超参数:
B: 每个内部节点最大的CF个数。
L: 每个叶节点最大的CF个数。
T: 新样本若被分到某一CF中,其到该CF中心的距离最大值。

CF-Tree构建步骤:

1、初始状态,CF树是空的,无任何样本。读入第一个样本x(a,b),生成一个CF三元组,此处N=1,LS=(a,b),SS=a2+b2,我们令其为CF1。

2、读入第二个样本,若到CF1的距离小于T,那么这个样本也归入CF1,更新三元组数据;如果大于T,则新划分出一个CF,这个样本作为CF2当中的首个样本,生成一个CF三元组。
注意:此时都是在节点内进行CF的建立,而非产生新的节点。

3、分裂:如果新数据进入该节点后,距离所有CF中心的距离都大于T,且Cf个数在生成新CF后大于B,则该节点需要进行划分。

4、找到该分支内各个CF之间的距离最大的两个CF,分别作为两个新叶子结点的CF,再计算剩余CF到这两个CF之间的距离,距离近的分到一个节点当中。

5、如果节点分裂过后叶子节点个数超过L,则该节点要进行分裂,分裂方式和上一步相同。

6、生成CF和分裂过程直至所有样本均进入CF树后停止。

CF-Tree 详解

2、BIRCH算法

BIRCH算法 (平衡迭代削减聚类法):聚类特征使用3元组进行一个簇的相关信息,通过构建满足分枝因子和簇直径限制的聚类特征树(CF-Tree)来求聚类,聚类特征树其实是一个具有两个参数分枝因子(B、L)类直径(T)的高度平衡树;分枝因子规定了树的每个节点的子女的最多个数,而类直径体现了对这一类点的距离范围;非叶子节点为它子女的最大特征值;聚类特征树的构建可以是动态过程的,可以随时根据数据对模型进行更新操作。

对应生成的结果就是一个簇(聚类特征 - CF)
BIRCH算法的过程就是建立CF-Tree的过程。

优缺点:
1、适合大规模数据集,线性效率;
层次聚类算法的复杂度为 OT(n2)
优化后的BIRCH算法构建聚类特征树(CF-Tree)的时间复杂度为O(n)

2、只适合分布呈凸形或者球形的数据集、需要给定聚类个数和簇之间的相关参数;


3、CURE算法

CURE算法(使用代表点的聚类法):是一种凝聚算法(AGNES)。该算法先把每个数据点看成一类,然后合并距离最近的类直至类个数为所要求的个数为止。但是和AGNES算法的区别是:取消了使用所有点或用中心点+距离来表示一个类,而是从每个类中抽取固定数量、分布较好的点作为此类的代表点,并将这些代表点(一般10个)乘以一个适当的收缩因子(一般设置0.2~0.7之间),使它们更加靠近类中心点。代表点的收缩特性可以调整模型可以匹配那些非球形的场景,而且收缩因子的使用可以减少噪音对聚类的影响。

代表点 不是原来的点,而是那些需要重新计算的点。

分析CURE算法

参考论文:https://wenku.baidu.com/view/32b7390cbe1e650e53ea9904.html

优点:
能够处理非球形分布的应用场景
采用随机抽样和分区的方式可以提高算法的执行效率

10 聚类算法 - 代码案例四 - 层次聚类(BIRCH)算法参数比较

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342