聚类算法(划分式聚类方法,基于密度的方法,层次化聚类算法等)

聚类(Clustering) 是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。

一般过程:

  1. 数据准备:特征标准化和降维
  2. 特征选择:从最初的特征中选择最有效的特征,并将其存储在向量中
  3. 特征提取:通过对选择的特征进行转换形成新的突出特征
  4. 聚类:基于某种距离函数进行相似度度量,获取簇
  5. 聚类结果评估:分析聚类结果,如距离误差和(SSE)等

划分式聚类方法

k-means

流程:

  1. 创建k个点作为初始质心(随机选择)
  2. 当任意一个点的簇的分破欸结果发生改变时
    1. 对数据集中的每个数据点
      1. 对每个质心
        1. 计算质心和数据点之间的距离
      2. 将数据点分配到距离其最近的簇
    2. 对每个簇,计算簇中所有点的均值并且将均值作为质心

k-means++

流程:

  1. 随机选取一个数据点作为初始的聚类中心
  2. 当聚类中心数量小于k
    1. 计算每个数据点与当前已有聚类中心的最短距离,用D(x)表示,这个值越大,表示被选取为下一个聚类中心的概率越大,最后使用轮盘法选取下一个聚类中心

bi-kmeans

流程:

  1. 将所有的点视为一个簇
  2. 当簇的个数小于k时
    1. 对每一个簇
      1. 计算总误差
      2. 在给定的簇上面进行k-means聚类(k=2)
      3. 计算将该簇一分为二之后的总误差
    2. 选取使得误差最小的那个簇进行划分操作

基于密度的方法

k-means算法对于凸性数据具有良好的效果,能够根据距离来将数据分为球状类的簇,但对于非凸形状的数据点,就无能为力了。

基于密度的聚类方法 需要定义两个参数\varepsilon和M,分别表示密度的领域半径和领域密度阈值。

DBSCAN

特点在于:

  1. 需要提前确定密度邻域半径领域密度阈值
  2. 不需要提前设置聚类的个数
  3. 对初值选取敏感,对噪声不敏感
  4. 密度不均的数据聚合效果不好

OPTICS

OPTICS(Ordering Points To Identify the Clustering Structure, OPTICS)是DBSCAN算法的一种有效扩展,主要解决对输入参数敏感的问题。即选取有限个邻域参数[公式] 进行聚类,这样就能得到不同邻域参数下的聚类结果。

层次化聚类算法

层次聚类算法 (hierarchical clustering) 是一种贪心算法,将数据集划分为一层一层的 clusters,后面一层生成的 clusters 基于前面一层的结果。层次聚类算法一般分为两类:

  1. Agglomerative 层次聚类:又称自底向上(bottom-up)的层次聚类,每一个对象最开始都是一个 cluster,每次按一定的准则将最相近的两个 cluster 合并生成一个新的 cluster,如此往复,直至最终所有的对象都属于一个 cluster。这里主要关注此类算法。
  2. Divisive 层次聚类: 又称自顶向下(top-down)的层次聚类,最开始所有的对象均属于一个 cluster,每次按一定的准则将某个 cluster 划分为多个 cluster,如此往复,直至每个对象均是一个 cluster。

核聚类

通过一个非线性映射,将输入空间中的数据点映射到高维特征空间中,并选取合适的Mercer核函数代替非线性映射的内积,在特征空间中进行聚类

优点:

  1. 普适的
  2. 通过非线性映射增加了数据点线性可分的概率,即能较好地分辨、提取并放大有用的特征,从而实现更为准确的聚类,算法收敛速度也较快。

支持向量聚类

支持向量聚类(Support Vector Clustering, SVC)属于核聚类的一种,它以支持向量机(Support Vector Machine, SVM)为工具进行聚类。

利用高斯核,将数据空间中的数据点映射到一个高维的特征空间中。再在特征空间中寻找一个能包围所有数据点象的半径最小的球,将这个球映回到数据空间,则得到了包含所有数据点的等值线集。这些等值线就是簇的边界。每一条闭合等值线包围的点属于同一个簇

两个阶段:

SVC训练阶段

  1. SVC训练阶段
    1. 包括高斯核宽度系数的确定、核矩阵的计算、Lagrange乘子的计算、支持向量的选取和高维特征空间中特征球半径的计算
  2. 聚类分配阶段
    1. 聚类分配阶段首先生成邻接矩阵,然后根据邻接矩阵进行聚类分配


优势:

  1. 能产生任意形状的簇边界;
  2. 能分析噪声数据点且能分离相互交叠的簇。这是许多聚类算法无法做到的

谱聚类

谱聚类想法的起源:如何在给定长度的线条下围出一个最大的面积,也可理解为,在给定面积下如何使用更短的线条如何在给定一张图,拿出“更短”的边来将其“更好”地切分。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
层次聚类算法和EM聚类算法都是常见的聚类算法,下面是它们的详细介绍: 1. 层次聚类算法 层次聚类算法是一种基于树形结构的聚类算法,它将数据集中的每个元素看作一个初始的簇,然后逐步将相邻的簇合并,形成更大的簇,直到所有元素都被聚为一类。层次聚类算法有两种实现方:自下而上的聚合算法和自上而下的分裂算法。自下而上的聚合算法从每个元素开始构建簇,逐步合并相邻的簇,直到所有元素都被聚为一类;自上而下的分裂算法则是从整个数据集开始,逐步将其分裂为更小的簇。 层次聚类算法的优点是易于理解和实现,缺点是对于大规模数据集的聚类效果不佳,计算复杂度较高。 2. EM聚类算法 EM聚类算法是一种基于概率模型的聚类算法,它将数据集看作由若干个概率分布生成的样本集合,通过迭代优化来估计数据集中每个元素属于哪个簇的概率。EM聚类算法的基本思想是假设每个簇都是由一个概率模型生成的,然后通过最大化样本点的概率来估计模型参数。EM聚类算法的迭代过程分为两步:E步(Expectation)和M步(Maximization)。在E步中,算法根据当前的模型参数估计每个样本点属于每个簇的概率;在M步中,算法根据E步的结果,更新模型参数,以最大化样本点的概率。 EM聚类算法的优点是可以处理高维数据和噪声数据,聚类效果较好;缺点是对于初始的模型参数比较敏感,需要较多的迭代次数,计算复杂度较高。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值