最强聚类算法,层次聚类!!

首先来说,聚类算法是一种无监督学习算法,用于将一组数据按照它们的相似性划分成不同的组(称为“簇”)。它不会依赖预先定义的标签,而是自动根据数据本身的特性发现这些组。

聚类就像把一堆东西分类整理,比如按照颜色、大小、形状把玩具分成不同的篮子。

如果需要本文PDF版本的同学,文末获取~

另外,文末有总结性的干货~

一起来看下具体细化内容~

层次聚类是聚类算法的一种,它会一步步地将数据点聚合到一起,形成一棵“聚类树”(称为树状图,dendrogram)。根据需求,可以在不同的层级选择划分结果。

层次聚类有两种主要方式:

1.凝聚式(自底向上):每个数据点开始作为一个独立的簇,逐步将最近的簇合并,直到只剩一个大簇。2.分裂式(自顶向下):从一个大簇开始,将其逐步拆分成更小的簇。

场景:假设你是一家餐馆老板,餐厅里来了6位顾客,他们互相认识的程度(即亲密关系)如下:

目标:把这些人分成若干组,关系更近的坐在一起。

每个人都是一个独立的簇:

从距离矩阵中,找到最近的两个人:

于是合并成一个簇:

更新簇和其他人的距离。常见方法是最小距离法,即取簇中任意两点的最小距离:

更新后的距离矩阵:

再次寻找最近的两个:

合并成一个簇:

更新距离矩阵:

继续:

最终可构造树状图,将人群分成更大的簇直到合并成一个。

层次聚类像是搭积木,根据“距离”逐步合并,最终形成一个分类树。你可以在任何层级“剪开”,得到需要的簇。例如:

层次聚类的核心在于定义簇之间的相似性(或距离),并逐步合并最近的簇。以下是具体推导过程。

给定数据集,其中,我们需要将数据划分成个簇,使得:

基本目标:通过一系列的合并操作生成一个树状结构(树状图,dendrogram)。

在聚类中,核心是定义两点或两簇之间的距离。常见的距离计算方法包括:

假设和是两个簇,簇中的点集合分别是和。常见定义方式有:1.最小距离法(SingleLinkage):

适合找“紧密连接”的簇。

2.最大距离法(CompleteLinkage):

更强调“整体分离”。

3.平均距离法(AverageLinkage):

考虑两簇之间所有点的平均距离。

4.质心距离法(CentroidLinkage):

其中,质心$\mu_1=\frac1}{C_1|\sum_{x_i\inC_1}x_i$,质心距离计算较快,但可能不适合非凸形状。

数据点集合,距离度量,簇间距离定义(如最小距离)。

生成的树状图或任意层次的簇划分。

1.初始化:每个点单独成为一个簇,记为。

2.计算距离矩阵:计算所有簇之间的初始距离,构造距离矩阵,其中。

3.合并簇:

4.重复步骤3:直到簇数量减少到1或达到预期层次。

5.输出:生成一棵树状图。

假设当前簇为,合并后形成新簇,剩下的簇为。

新簇到其他簇的距离更新公式取决于距离度量:

(加权平均)。

1.初始距离矩阵计算:

需要计算两两点之间的距离。

2.合并操作:在每次合并中更新距离矩阵,涉及次操作,共次合并:

1.初始化距离矩阵(欧几里得距离):

2.合并最近的点:

1.可解释性强:层次聚类通过生成树状图(Dendrogram)展现数据的分层结构,直观显示数据的分组关系。便于分析簇的形成过程和相似性。

2.无需预设簇数量:与-均值聚类等方法不同,不需要事先指定簇的数量,适用于对未知数据的探索。

3.适合发现分层结构:如果数据具有自然的层次或嵌套关系(如家族谱系、生物分类),层次聚类可以很好地捕捉这种结构。

4.对噪声点更鲁棒:相比密度聚类,层次聚类对小规模的噪声点影响较小,尤其是“单链”或“全链”方法。

5.灵活的距离定义:支持多种簇间距离计算方式(单链、全链、平均等),能够根据任务需求调整方法。

2.合并不可逆:一旦将两个点或簇合并,无法撤回。初始合并错误可能影响最终结果。

3.对距离度量敏感:不同的距离度量方法会显著影响结果,选择不当可能导致误差。

4.无法处理非凸簇:由于基于距离,层次聚类难以处理非凸形状的簇(如环形、蛇形)。

5.缺乏中心:层次聚类无法提供簇的“中心”点或代表性样本,不适合用来直接生成摘要信息。

基于市场细分(消费者行为聚类),我们下面来实现具体细节:

1.生成模拟消费者数据:包含年龄、收入、购买频率等。2.应用层次聚类算法:生成聚类结果。3.生成两个图形:

代码:

PCA投影后的聚类结果:数据被降维至二维平面,使用颜色标识不同簇。图中展示了层次聚类的分组效果。

树状图(Dendrogram):展示了层次聚类的分层结构,显示不同簇的合并过程。可以通过剪切树状图来决定分组数量。

THE END
1.R语言聚类分析:数据聚类算法在数据挖掘与机器学习领域,聚类分析是一种常用的无监督学习方法,其主要目的是将相似的数据点归为一类,从而揭示数据自身的内在结构。R语言作为一种功能强大的数据处理和分析工具,提供了多种聚类分析算法,如K均值聚类、层次聚类、DBSCAN等。本文将从 R 语言的角度介绍数据聚类算法的原理、常用方法和实践案例。 https://www.jianshu.com/p/36fab82dfab2
2.解释聚类分析模型群集中的某些条目具有意义,而其他条目看起来像是随机内容。 部分原因是 k 均值算法必须在群集之间形成任意边界。 所有群集中都有许多条目处于边缘位置,可以属于两个(或更多)群集。 为了减少此类干扰,我们可以按照到各自群集中心的距离对这些条目进行排序,然后查看离中心最近的条目。 https://docs.microsoft.com/zh-cn/learn/modules/unsupervised-learning-clustering/4-interpret-clustering-model
3.大数据最常用的算法主要有哪些1. K-均值聚类算法(K-Means Clustering):将数据集划分为k个簇,每个簇中的数据点与簇中心的距离最小化。常用于数据的无监督聚类。 2. 决策树算法(Decision Tree):通过对数据进行划分和树形结构的建立,预测离散或连续的输出变量。常用于分类和回归问题。 3. 随机森林算法(Random Forest):由多个决策树组成的集成https://wenku.baidu.com/view/faf61cac0366f5335a8102d276a20029bd6463e3.html
4.数据分析中的聚类算法有哪些非负矩阵分解算法是一种基于矩阵分解的聚类算法,它将数据矩阵分解为多个非负矩阵的乘积,每个非负矩阵表示一个潜在的特征空间。算法的基本思想是:先随机初始化多个非负矩阵,然后通过最小化原始数据矩阵和非负矩阵乘积之间的距离来更新非负矩阵,重复以上步骤直到收敛。 https://www.linkflowtech.com/news/1082
5.有哪些常用的聚类算法?无需设定K(可作为K-means聚类探索K的先验算法)对于K-means不擅长的非球形点处理的较好 [缺点]时间https://www.zhihu.com/question/44164453/answer/2751357060
6.聚类算法详解3、算法的数据输入属性:算法处理的结果与数据输入的顺序是否相关,也就是说算法是否独立于数据输入顺序;算法处理有很多属性数据的能力,也就是对数据维数是否敏感,对数据的类型有无要求。 4、聚类算法有哪些类 二、算法介绍 1、基于层次的方法(Hierarchical methods) https://blog.csdn.net/abc200941410128/article/details/78541273
7.机器学习(二)之无监督学习:数据变换聚类分析聚类算法(clustering algorithm)将数据划分成不同的组,每组包含相似的内容。 无监督学习的一个主要挑战就是评估算法是否学到了有用的东西。我们不知道正确的输出应该是什么,很难判断一个模型是否“表现很好”。,通常来说,评估无监督算法结果的唯一方法就是人工检查。 https://www.flyai.com/article/516
8.17个机器学习的常用算法在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括Apriori算法以及k-Means算法。 3.半监督式学习: 在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理https://aidc.shisu.edu.cn/78/aa/c13626a161962/page.htm
9.基于聚类和XGboost算法的心脏病预测1.2 聚类算法 本文引用的聚类算法是K-means 算法, K-means算法中的K代表类簇个数, means代表类簇内数据对象的均值(这种均值表示的是类簇中心)[3]. K-means算法是一种经典的聚类算法, 此算法以数据对象之间的距离作为聚类标准, 即数据对象之间距离越小则表示这类数据拥有较高的相似度, 就会朝着一个中心点聚集https://c-s-a.org.cn/html/2019/1/6729.html
10.8个超级经典的聚类算法腾讯云开发者社区DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,用于将高维数据分组为密度相连的、具有相似特征的多个数据簇。其原理如下: 选择参数:DBSCAN算法需要两个关键参数,即ε(eps)和 MinPts。其中,ε用于定义邻域的大小,MinPts是指在邻域内至少应该有的数据点数目。 https://cloud.tencent.com/developer/article/2430459
11.有监督的聚类算法有哪些有监督分类算法有哪些有监督的聚类算法有哪些 有监督分类算法有哪些 机器学习应用分析–有监督算法-分类算法 ###按学习方式分类: 监督学习 无监督学习 半监督学习 强化学习 ①监督学习 数据集中的每个样本有相应的“正确答案”, 根据这些样本做出预测, 分有两类: 回归问题和分类问题。https://blog.51cto.com/u_12228/10764841