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

简介:

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

五、层次聚类概述

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

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

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


__AGNES__和__DIANA__算法优缺点:
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=a^2+b^2,我们令其为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)算法参数比较

相关文章
|
3月前
|
数据采集 机器学习/深度学习 算法
【优秀设计案例】基于K-Means聚类算法的球员数据聚类分析设计与实现
本文通过K-Means聚类算法对NBA球员数据进行聚类分析,旨在揭示球员间的相似性和差异性,为球队管理、战术决策和球员评估提供数据支持,并通过特征工程和结果可视化深入理解球员表现和潜力。
132 1
【优秀设计案例】基于K-Means聚类算法的球员数据聚类分析设计与实现
|
3月前
|
数据采集 算法 数据可视化
基于Python的k-means聚类分析算法的实现与应用,可以用在电商评论、招聘信息等各个领域的文本聚类及指标聚类,效果很好
本文介绍了基于Python实现的k-means聚类分析算法,并通过微博考研话题的数据清洗、聚类数量评估、聚类分析实现与结果可视化等步骤,展示了该算法在文本聚类领域的应用效果。
113 1
|
17天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
1月前
|
算法 数据挖掘
基于粒子群优化算法的图象聚类识别matlab仿真
该程序基于粒子群优化(PSO)算法实现图像聚类识别,能识别0~9的数字图片。在MATLAB2017B环境下运行,通过特征提取、PSO优化找到最佳聚类中心,提高识别准确性。PSO模拟鸟群捕食行为,通过粒子间的协作优化搜索过程。程序包括图片读取、特征提取、聚类分析及结果展示等步骤,实现了高效的图像识别。
|
3月前
|
数据采集 自然语言处理 数据可视化
基于Python的社交媒体评论数据挖掘,使用LDA主题分析、文本聚类算法、情感分析实现
本文介绍了基于Python的社交媒体评论数据挖掘方法,使用LDA主题分析、文本聚类算法和情感分析技术,对数据进行深入分析和可视化,以揭示文本数据中的潜在主题、模式和情感倾向。
180 0
|
3月前
|
人工智能 算法 数据可视化
DBSCAN密度聚类算法(理论+图解+python代码)
DBSCAN密度聚类算法(理论+图解+python代码)
|
3月前
|
算法 数据可视化 搜索推荐
基于python的k-means聚类分析算法,对文本、数据等进行聚类,有轮廓系数和手肘法检验
本文详细介绍了基于Python实现的k-means聚类分析算法,包括数据准备、预处理、标准化、聚类数目确定、聚类分析、降维可视化以及结果输出的完整流程,并应用该算法对文本数据进行聚类分析,展示了轮廓系数法和手肘法检验确定最佳聚类数目的方法。
104 0
|
1月前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
9天前
|
算法 数据安全/隐私保护 索引
OFDM系统PAPR算法的MATLAB仿真,对比SLM,PTS以及CAF,对比不同傅里叶变换长度
本项目展示了在MATLAB 2022a环境下,通过选择映射(SLM)与相位截断星座图(PTS)技术有效降低OFDM系统中PAPR的算法实现。包括无水印的算法运行效果预览、核心程序及详尽的中文注释,附带操作步骤视频,适合研究与教学使用。
|
18天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
下一篇
无影云桌面