数据挖掘读书笔记--第九章:聚类分析:基本概念和方法

本文详细介绍了聚类分析的基本概念、方法,包括kk-均值、kk-中心点、层次聚类和DBSCAN算法,强调了各种方法的优缺点和适用场景。还探讨了聚类评估、确定簇数的方法,并提供了Python和R语言的简单实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

散记知识点

——“聚类:经典的无监督学习方法”

1.基本概念和方法

(1) 聚类的基本概念

  • 聚类是一个把数据对象划分成多个组或簇的过程,使得簇内的对象具有很高的相似性,但与其他簇中的对象很不相似。

(2) 聚类的基本方法

  • 基于距离的划分方法

    给定一个nn个对象的集合,划分方法构建数据的 k 个划分。大部分的划分方法是基于距离的,首先给定要构建的分区数kk构建一个初始划分。通过不断迭代,使得同一簇中的对象尽可能接近,不同簇中的对象尽可能远离。最终达到稳定状态。典型的这类方法有: k -均值和kk-中心点的启发式算法,能够逼近局部最优。

  • 基于层次的方法

    层次方法分为凝聚和分裂。凝聚:自底向上,开始将每个对象作为单独的一个组,然后逐渐合并相近的组,直到所有的组合并为一个组(或者满足某个终止条件)。分裂:自顶向下,开始将所有对象置于一个簇中,每次相继迭代,划分更小的簇,最终每个对象单独在一个簇中。

  • 基于密度的方法

    考虑“邻域”中的密度(对象或数据点的数目),超过某个阈值,就继续增长给定的簇。基于密度的聚类方法,可以用来过滤噪声和离群点,能够发现任意形状的簇。

  • 基于网格的方法

    把对象空间化为有限个单元形成一个网格结构。聚类操作在网格上进行。处理速度快,因为其处理时间独立于数据对象的个数,仅依赖于量化空间每一维的单元数。

  • 总结


2. k -均值(k-means)聚类算法

(1) 算法的主要思想和原理

  • 算法的目标

    假设数据集DD包含 n 个欧式空间中的对象。算法将nn个对象分配到 k 个簇C1,...,CkC1,...,Ck中,使得对于1i,jk,CiDCiCj=1≤i,j≤k,Ci⊂D且Ci∩Cj=∅。用一个目标函数评估划分的质量,使得簇内对象相似,簇间对象相异。

  • 评价(目标)函数

    kk-means取簇 C i 中对象的均值为中心点cici代表该簇,对象pp与其簇的代表 c i 之差为dist(p,ci)dist(p,ci)度量,其中dist(x,y)dist(x,y)表示两个点之间的欧式距离。算法划分kk个簇的质量可用数据集中所有对象与所属簇中心的距离之和度量定义为:

    E = i = 1 k p C i d i s t ( p , c i ) 2
    其中,dist(p,ci)2dist(p,ci)2表示簇CiCi的质量是簇中所有对象和形心cici得误差平方和。EE就是我们所要优化得目标函数,试图使生成的结果簇中尽可能的紧凑和独立。

  • 算法策略

    要想求出全局最优解,需要穷举出所有可能的划分,比较目标函数。即使在2维空间内,穷举法也是个N-P难问题。如果簇数为 k 维度为dd,则穷举法对 n 个对象求出最佳的kk个划分的时间复杂度为 O ( n d k + 1 log n ) 。这个开销是很大的,为了克服这个问题,通常采用贪心算法的策略

(2) 算法的主要过程

  • 首先,在DD随机选择 k (预定义kk的大小)个对象,每个对象代表一个簇的初始均值或中心。对剩下的每个对象,根据其与各个簇中心的欧式距离,将它分配到最相似的簇。
  • 然后,算法迭代地改善簇内变差(所有对象和形心 c i 得误差平方和)。对每个簇,它使用上次迭代分配到该簇的对象,计算新的均值。
  • 接着,使用更新后的均值作为新的簇中心,重新分配所有对象。迭代继续,直到分配稳定,即本轮形成的簇与前一轮形成的簇相同。

这里写图片描述

(3) 算法的评价

  • kk-means不能保证能够收敛于全局最优解,结果可能受初始簇中心的选择有关。实践中,通常以不同的初始簇中心,多次运行算法,以期许达到好的结果。
  • 此外,算法的复杂度为 O ( n k t ) ,其中nn为对象数, k 为簇数,tt为迭代次数。远远低于穷举法,因此对于处理大数据集,该算法相对可伸缩和有效的。
  • k -means要求事先给定簇数kk值,这一点很盲目,算是一个缺点。但是可以采取其他技术确定较好的 k 值。
  • kk-means不适合发现非凸形状的簇或者大小差别很大的簇,此外, k -means对噪声和离群点敏感,这些值会大大影响均值的计算。

2. kk-中心点聚类算法

(1) 算法的主要思想和原理

  • 针对 k -means对噪声和离群点敏感的问题,kk-中心选择实际的对象作为簇的代表。每个簇选择一个代表对象 o i ,和kmeansk−means同样采用误差平方和作为评价度量:
    E=i=1kpCidist(p,oi)2E=∑i=1k∑p∈Cidist(p,oi)2
    k-中心聚类试图最小化该绝对误差。

  • 围绕中心点划分(Partition Around Medoids, PAM)算法是k-中心聚类的一种流行实现方法。采用贪心迭代的思想:初始随机选择kk个代表,考虑簇中一个非代表对象替换代表对象是否能够提高聚类质量。找到使得聚类质量最好的非代表对象替换代表对象。

(2) 算法的主要过程

  1. 初始随机选择k个数据点 o 1 , . . . , o j , . . . o k 作为代表对象,将每个非代表对象分配到离其最近代表对象簇中,计算误差平方和。
    • 依次考虑每个非代表对象oqoq是否是当前代表对象的好的替代。例如:用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值