几种常见的聚类算法

(1) k均值聚类

思想:先确定聚类中心个数K,初始化聚类中心,计算每个样本到每个聚类中心的距离,将其归为最近的一类。

#伪代码
输入:样本集D={x1,x2....xm}
     聚类中心(簇)个数k.
迭代过程:
1:从D中随机选择K个样本作为初始聚类中心{u1,u2....uk}
2:repeat:
3:      令Ci=空集(1<=i<=k)
4:      for j=1,2 .....m ,do  #遍历所有样本
5:           计算样本xj到k个聚类中心的距离(一般是欧氏距离)
6:          将该样本归为距离最小的那一个中心,并将xj添加到相应的集合Ci中
7:       end
8        for i=1,2....k  do
9:           重新计算聚类中心 new_ui=mean(Ci),即取这个簇所有样本的均值
10:         if new_ui!=ui   #说明:当 |new_ui-ui|的绝对值变化的很小时也会停止更新
11:             ui=new_ui
12:          else:
13:             保持ui不变
14:         end
15:      end
16:直到所有的聚类中心满足条件
输出:最终的类簇划分
Ps:python中需要设置最大迭代次数

优缺点:

优点:对于大型数据集也是简单高效、时间复杂度、空间复杂度低。 
缺点:最重要是数据集大时结果容易局部最优;需要预先设定K值,对最先的K个点选取很敏感;对噪声和离群值非常敏感

一些改进:

k-means对初始值的设置很敏感,所以有了k-means++、intelligent k-means、genetic k-means。 
k-means对噪声和离群值非常敏感,所以有了k-medoids和k-medians。 
k-means只用于numerical类型数据,不适用于categorical类型数据,所以k-modes。 
k-means不能解决非凸(non-convex)数据,所以有了kernel k-means。

(2)DBSCAN

思想:DBSCAN是一种基于密度聚类的方法,它假设样本能够通过分布的紧密程度来区分。这个算法有一篇博客讲的很好:

https://www.cnblogs.com/pinard/p/6208966.html

优缺点:

DBSCAN的主要优点有:

    1) 可以对任意形状的稠密数据集进行聚类,相对的,K-Means之类的聚类算法一般只适用于凸数据集。

    2) 可以在聚类的同时发现异常点,对数据集中的异常点不敏感。

    3) 聚类结果没有偏倚,相对的,K-Means之类的聚类算法初始值对聚类结果有很大影响。

DBSCAN的主要缺点有:

    1)如果样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差,这时用DBSCAN聚类一般不适合。

    2) 如果样本集较大时,聚类收敛时间较长,此时可以对搜索最近邻时建立的KD树或者球树进行规模限制来改进。

    3) 调参相对于传统的K-Means之类的聚类算法稍复杂,主要需要对距离阈值ϵϵ,邻域样本数阈值MinPts联合调参,

(3)层次聚类

层次聚类试图在不同层次对数据集进行划分,形成树形的聚类结构,既可以”自底向上“聚合,也可以”自顶向下“拆分。这主要讲下AGNES这种自底向上聚合的算法。

思想:将每个样本都视为一个初始聚类簇,在算法的每一步找出距离最近的两个聚类簇进行合并。不断重复,直到达到预设的聚类簇数。(关键是如何计算距离)。

伪代码如下:

蓝鲸博客进行了具体说明:http://bluewhale.cc/2016-04-19/hierarchical-clustering.html

另外常用的还有高斯混合聚类、谱聚类等,有空再补充,hope so!

 

 

 

<think>嗯,用户现在想查找关于常见聚类算法的思维导图,涉及IT、数据挖掘和机器学习领域。首先,我需要确认聚类算法的主要类型和它们的特点。根据已有的知识,常见聚类算法包括划分式聚类(比如k-means)、层次聚类、密度聚类(如DBSCAN)、概率模型聚类(如高斯混合模型GMM)以及谱聚类等。 接下来,我需要参考用户提供的引用内容。引用[3]提到了k-means和层次聚类,还有GMM,指出GMM是软聚类,而k-means是硬聚类。这可能对构建思维导图的结构有帮助。另外,引用[1]提到数据挖掘中可视化技术的重要性,思维导图正是可视化的一种方式,所以可以强调思维导图在理解聚类算法中的作用。 用户可能需要一个结构清晰的分类,所以应该将聚类算法分成几大类,每类下列举具体算法,并简要说明特点和应用场景。例如,划分式聚类包括k-means,层次聚类包括AGNES和DIANA,密度聚类有DBSCAN,模型聚类有GMM,还有基于图的谱聚类。 另外,用户可能关心如何应用这些算法,所以需要提到应用场景,比如客户分群、图像分割等。同时,思维导图的结构应该包括算法名称、核心思想、优缺点、适用场景,可能还需要关联到数据挖掘流程中的步骤,如数据预处理、模型选择、结果评估等。 需要确保回答符合用户的要求:结构清晰,分点说明,使用中文,正确引用相关内容。同时生成相关问题,比如如何选择聚类算法、不同算法的比较、实际应用案例等。 最后,检查是否有遗漏的算法或分类,确保覆盖主要的聚类方法,并正确引用提供的参考资料,特别是引用[3]中的GMM和k-means的区别,以及引用[1]中可视化的重要性。</think>### 常见聚类算法思维导图解析 聚类算法是数据挖掘和机器学习中用于无监督学习的重要工具,其核心目标是将数据划分为具有相似特征的组。以下是主要聚类算法的分类及关键特性: #### 1. **划分式聚类** - **代表算法**:$k$-means、$k$-medoids - **核心思想**:通过迭代优化将数据划分为$k$个互斥簇,最小化簇内距离平方和。 - **特点**:需预先指定簇数量$k$,收敛速度较慢,适用于球形分布数据[^3]。 - **公式**:优化目标为最小化 $$J = \sum_{i=1}^k \sum_{x \in C_i} \|x - \mu_i\|^2$$ 其中$\mu_i$为簇$C_i$的质心。 #### 2. **层次聚类** - **代表算法**:AGNES(自底向上聚合)、DIANA(自顶向下分裂) - **核心思想**:通过树状结构(树状图)递归合并或分裂簇。 - **特点**:无需预设簇数量,可解释性强,但时间复杂度较高($O(n^3)$)。 #### 3. **密度聚类** - **代表算法**:DBSCAN、OPTICS - **核心思想**:基于数据密度分布识别簇,可发现任意形状的簇。 - **特点**:抗噪声能力强,需设置邻域半径$\epsilon$和最小样本数。 #### 4. **概率模型聚类** - **代表算法**:高斯混合模型(GMM) - **核心思想**:假设数据由多个高斯分布混合生成,通过EM算法估计参数。 - **特点**:软聚类(样本以概率属于不同簇),可处理复杂分布,收敛快[^3]。 #### 5. **基于图的聚类** - **代表算法**:谱聚类 - **核心思想**:将数据转化为图结构,利用图划分实现聚类。 - **特点**:适合非凸数据分布,依赖相似度矩阵的计算。 --- ### 思维导图框架建议 ``` 聚类算法 ├─ 划分式聚类(k-means, k-medoids) ├─ 层次聚类(AGNES, DIANA) ├─ 密度聚类(DBSCAN, OPTICS) ├─ 概率模型(GMM) └─ 图模型(谱聚类) ├─ 核心参数 ├─ 适用场景 └─ 优缺点对比 ``` #### 应用场景举例 - 客户分群($k$-means) - 异常检测(DBSCAN) - 图像分割(谱聚类) - 文本主题挖掘(GMM) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值