【模式识别与机器学习(17)】聚类分析教程【2】:高级方法与离群点分析

文章目录

    • 一、层次方法:不需要预先指定簇数
      • [1.1 凝聚层次聚类:自底向上合并](#1.1 凝聚层次聚类:自底向上合并)
      • [1.2 分裂层次聚类:自顶向下分裂](#1.2 分裂层次聚类:自顶向下分裂)
      • [1.3 层次方法的改进:ROCK和CHAMELEON](#1.3 层次方法的改进:ROCK和CHAMELEON)
    • 二、基于密度的方法:发现任意形状的簇
      • [2.1 DBSCAN:发现任意形状的簇](#2.1 DBSCAN:发现任意形状的簇)
      • [2.2 OPTICS和DENCLUE:DBSCAN的扩展](#2.2 OPTICS和DENCLUE:DBSCAN的扩展)
    • 三、基于网格的方法:大规模数据的高效处理
      • [3.1 基于网格的方法原理](#3.1 基于网格的方法原理)
    • 四、方法对比和选择
      • [4.1 如何选择合适的聚类方法](#4.1 如何选择合适的聚类方法)
    • 五、离群点分析:发现异常模式
      • [5.1 什么是离群点](#5.1 什么是离群点)
      • [5.2 基于统计分布的离群点检测](#5.2 基于统计分布的离群点检测)
      • [5.3 基于距离的离群点检测](#5.3 基于距离的离群点检测)
      • [5.4 基于密度的局部离群点检测](#5.4 基于密度的局部离群点检测)
      • [5.5 基于偏差的离群点检测](#5.5 基于偏差的离群点检测)
    • 六、实战场景:城市社区发现
      • [6.1 业务痛点识别](#6.1 业务痛点识别)
      • [6.2 方案拆解:用核心知识点解决问题](#6.2 方案拆解:用核心知识点解决问题)
      • [6.3 长期适配策略](#6.3 长期适配策略)
    • 总结

在掌握了聚类分析的基础概念和K-means等常见方法后,我们需要学习更高级的聚类方法,以处理复杂数据(如任意形状的簇、有噪声的数据)和特殊需求(如不需要预先指定簇数、需要层次结构)。本文以城市社区发现为实战场景,系统讲解层次聚类、基于密度的聚类和离群点分析,帮助读者理解如何从"简单球状簇"到"复杂任意形状簇",掌握高级聚类技术的设计逻辑和应用场景。


一、层次方法:不需要预先指定簇数

!NOTE

📝 关键点总结:层次方法通过自底向上合并或自顶向下分裂,形成层次结构,不需要预先指定簇数,但计算复杂度高,不适合大规模数据。

核心机制

  • 凝聚层次聚类:自底向上合并对象,从每个对象开始逐步合并最相似的对象
  • 分裂层次聚类:自顶向下分裂对象,从所有对象开始逐步分裂成越来越小的簇
  • 合并准则:单链接(最近距离)、全链接(最远距离)、平均链接(平均距离)、质心链接(质心距离)
  • 树状图:可视化层次结构,可以通过修剪获得不同数量的簇

决策标准:不需要预先指定簇数 → 层次方法;需要层次结构 → 层次方法;数据量大 → 不用层次方法(用划分方法);需要快速聚类 → 不用层次方法(用K-means)。

1.1 凝聚层次聚类:自底向上合并

问题:如何不需要预先指定簇数就能聚类?

通俗理解 :凝聚层次聚类就像滚雪球,从每个对象开始,逐步合并最相似的对象,直到所有对象都在一个簇中。核心作用:自底向上合并对象,形成层次结构,不需要预先指定簇数。

本质原理 :凝聚层次聚类(Agglomerative Hierarchical Clustering)首先将每个对象作为其簇,然后合并这些原子簇为越来越大的簇,直到所有的对象都在一个簇中,或者某个终止条件满足。常用的合并准则包括:单链接(Single-link,两个簇中最近对象之间的距离)、全链接(Complete-link,两个簇中最远对象之间的距离)、平均链接(Average-link,两个簇中所有对象对之间的平均距离)、质心链接(Centroid-link,两个簇质心之间的距离)。设计原因 :层次方法不需要预先指定聚类的簇数k,可以对树状图(dendrogram)进行修剪获得需要的聚类数目。聚类结果对应更好的有意义的分类准则(meaningful taxonomies),如动物族谱、语系发展史等。但计算复杂度高( O ( n 2 log ⁡ n ) O(n^2 \log n) O(n2logn)或 O ( n 3 ) O(n^3) O(n3)),不适合大规模数据。决策标准:不需要预先指定簇数 → 层次方法;需要层次结构 → 层次方法;数据量大 → 不用层次方法(用划分方法);需要快速聚类 → 不用层次方法(用K-means)。

应用边界:适合需要层次结构、不需要预先指定簇数的场景。但计算复杂度高,不适合大规模数据。

算法复杂度 :时间复杂度 O ( n 2 log ⁡ n ) O(n^2 \log n) O(n2logn)(使用堆)或 O ( n 3 ) O(n^3) O(n3)(暴力方法),其中n是对象数。空间复杂度 O ( n 2 ) O(n^2) O(n2)。

1.2 分裂层次聚类:自顶向下分裂

问题:层次聚类还有哪些方式?

通俗理解 :分裂层次聚类就像切蛋糕,从所有对象开始,逐步分裂成越来越小的簇,直到每个对象自成一簇。核心作用:自顶向下分裂对象,形成层次结构,不需要预先指定簇数。

本质原理 :分裂层次聚类(Divisive Hierarchical Clustering)首先将所有对象置于一个簇中,然后将它逐渐细分为越来越小的簇,直到每个对象自成一簇,或者达到某个终止条件。分裂准则通常选择使簇内相似性最小或簇间相似性最大的分裂点。设计原因 :分裂层次聚类和凝聚层次聚类类似,不需要预先指定簇数,可以形成层次结构。但分裂方法通常计算复杂度更高,因为需要在每一步选择最佳分裂点。决策标准:不需要预先指定簇数 → 层次方法;需要层次结构 → 层次方法;数据量大 → 不用层次方法(用划分方法);需要快速聚类 → 不用层次方法(用K-means)。

应用边界:适合需要层次结构、不需要预先指定簇数的场景。但计算复杂度高,通常不如凝聚方法常用。

算法复杂度 :时间复杂度 O ( 2 n ) O(2^n) O(2n)(最坏情况),其中n是对象数。空间复杂度 O ( n ) O(n) O(n)。

1.3 层次方法的改进:ROCK和CHAMELEON

问题:层次方法有哪些改进?

通俗理解 :就像改进传统方法,ROCK和CHAMELEON是针对特定问题的改进算法。核心作用:改进传统层次方法,处理特定类型的数据和问题。

本质原理 :对于纯粹的层次聚类方法,一旦合并或分裂执行,就不能修正。改进方法包括:ROCK(RObust Clustering using linKs)对具有分类属性的数据使用链接这一概念进行的层次聚类算法(购物篮问题);CHAMELEON(变色龙算法)采用动态建模确定的层次聚类算法(发现任意形状的簇)。设计原因 :传统层次方法有局限性,如只能处理数值数据、不能发现任意形状的簇等。改进算法针对特定问题提供更好的解决方案。例如,ROCK适合分类属性数据(如购物篮分析),CHAMELEON可以发现任意形状的簇。决策标准:分类属性数据 → ROCK;需要任意形状簇 → CHAMELEON;需要动态调整 → CHAMELEON;传统层次方法不适用 → 改进算法。

应用边界:适合特定类型的数据和问题。但改进算法通常更复杂,计算成本更高。


二、基于密度的方法:发现任意形状的簇

!NOTE

📝 关键点总结:基于密度的方法通过识别高密度区域发现任意形状的簇,对噪声鲁棒,不需要预先指定簇数,但需要设置密度参数,对参数敏感。

核心机制

  • DBSCAN:基于高密度连通区域,可以发现任意形状的簇,自动识别噪声点
  • OPTICS:DBSCAN的扩展,可以发现不同密度的簇
  • DENCLUE:基于密度分布函数,有坚实的数学基础,适合高维数据
  • 核心概念 : ϵ \epsilon ϵ-邻域、MinPts、核心对象、密度直达、密度相连

决策标准:需要任意形状簇 → DBSCAN;数据有噪声 → DBSCAN;不需要预先指定簇数 → DBSCAN;数据密度差异大 → OPTICS;高维数据 → DENCLUE;需要设置参数 → DBSCAN。

2.1 DBSCAN:发现任意形状的簇

问题:如何发现任意形状的簇?

通俗理解 :DBSCAN就像找人群,密度高的地方是一群人(簇),密度低的地方是空地(噪声),可以发现任意形状的人群。核心作用:基于密度发现任意形状的簇,对噪声鲁棒,不需要预先指定簇数。

本质原理 :DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是基于高密度连通区域的基于密度的聚类算法。将具有足够高密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,将簇定义为密度相连的点的最大集合。核心概念: ϵ \epsilon ϵ-邻域(对象周围半径为 ϵ \epsilon ϵ的区域)、MinPts( ϵ \epsilon ϵ-邻域内最少对象数)、核心对象( ϵ \epsilon ϵ-邻域内对象数≥MinPts)、密度直达(对象q在核心对象p的 ϵ \epsilon ϵ-邻域内)、密度相连(存在核心对象o,使得p和q都密度可达o)。算法步骤:1. 找到所有核心对象;2. 从核心对象开始,找到所有密度可达的对象形成簇;3. 未分配到任何簇的对象标记为噪声。设计原因 :K-means等划分方法只能发现球状簇,而DBSCAN可以发现任意形状的簇。DBSCAN对噪声鲁棒,可以自动识别噪声点。不需要预先指定簇数,但需要设置参数 ϵ \epsilon ϵ和MinPts。决策标准:需要任意形状簇 → DBSCAN;数据有噪声 → DBSCAN;不需要预先指定簇数 → DBSCAN;数据密度差异大 → DBSCAN效果差;需要设置参数 → DBSCAN。

应用边界 :适合任意形状簇、有噪声数据的场景。但需要设置参数 ϵ \epsilon ϵ和MinPts,对参数敏感,不适合密度差异大的数据。

算法复杂度 :时间复杂度 O ( n 2 ) O(n^2) O(n2)(最坏情况),使用空间索引可以优化到 O ( n log ⁡ n ) O(n \log n) O(nlogn)。空间复杂度 O ( n ) O(n) O(n)。

2.2 OPTICS和DENCLUE:DBSCAN的扩展

问题:基于密度的方法还有哪些?

通俗理解 :OPTICS和DENCLUE是DBSCAN的扩展和改进,处理DBSCAN的局限性。核心作用:改进DBSCAN,处理参数敏感、密度差异大等问题。

本质原理 :OPTICS(Ordering Points To Identify the Clustering Structure)根据邻域对象的密度,根据某种密度函数生成数据聚类结构的一个增广序,可以发现不同密度的簇。DENCLUE(DENsity-based CLUstEring)基于密度分布函数的聚类算法,每个数据点的影响可以用一个数学函数形式化建模(影响函数),数据空间的整体密度可以用所有数据点的影响函数的和建模,簇可以通过识别密度吸引点(density attractor)数学确定,其中密度吸引点是全局密度函数的局部极大值。设计原因 :DBSCAN对参数敏感,只能发现单一密度的簇。OPTICS可以发现不同密度的簇,DENCLUE有坚实的数学基础,概括了各种聚类方法,适用于含有大量噪声的数据,可以聚类高维数据的任意形状簇。决策标准:密度差异大 → OPTICS;需要数学基础 → DENCLUE;高维数据 → DENCLUE;需要不同密度簇 → OPTICS。

应用边界:适合密度差异大、高维数据、需要数学基础的场景。但算法更复杂,计算成本更高。


三、基于网格的方法:大规模数据的高效处理

!NOTE

📝 关键点总结:基于网格的方法将空间划分为网格单元,利用网格单元中的统计信息进行聚类,适合大规模数据,但精度有限。

核心机制

  • 网格划分:将空间区域划分为多层次矩形单元
  • 统计信息:利用存储在网格单元中的统计信息进行聚类分析
  • STING:典型的基于网格的方法,适合大规模数据
  • 计算效率:只需要处理网格单元而不是所有数据点,计算复杂度低

决策标准:数据量大(百万级)→ 基于网格的方法;需要快速聚类 → 基于网格的方法;需要高精度 → 不用基于网格的方法(用其他方法)。

3.1 基于网格的方法原理

问题:如何高效处理大规模数据?

通俗理解 :基于网格的方法就像把空间分成小格子,统计每个格子的信息,然后根据格子信息进行聚类。核心作用:将空间划分为网格单元,利用网格单元中的统计信息进行聚类,适合大规模数据。

本质原理 :基于网格的方法(Grid-based methods)将空间区域划分为多层次矩形单元,利用存储在网格单元中的统计信息进行聚类分析。STING(Statistical Information Grid)是典型的基于网格的方法,将空间区域划分为多层次矩形单元,利用存储在网格单元中的统计信息进行聚类分析。设计原因 :基于网格的方法适合大规模数据,因为只需要处理网格单元而不是所有数据点,计算复杂度低。但只能发现网格单元大小的簇,精度有限。决策标准:数据量大(百万级)→ 基于网格的方法;需要快速聚类 → 基于网格的方法;需要高精度 → 不用基于网格的方法(用其他方法)。

应用边界:适合大规模数据、需要快速聚类的场景。但精度有限,只能发现网格单元大小的簇。

算法复杂度 :时间复杂度 O ( n ) O(n) O(n),其中n是对象数。空间复杂度 O ( g ) O(g) O(g),其中g是网格单元数。


四、方法对比和选择

!NOTE

📝 关键点总结:不同聚类方法有不同的特点和适用场景,需要根据数据特点(大小、形状、噪声、维度)和应用需求(速度、精度、可解释性)选择合适的算法。

方法对比

  • K-means:对离群点敏感,对簇形状要求凸形或球形,可伸缩性较高
  • K-medoids:对离群点不敏感,对簇形状要求凸形或球形,可伸缩性一般
  • 层次方法:对离群点不敏感,对簇形状要求任意,可伸缩性一般
  • DBSCAN:对离群点敏感,对簇形状要求任意,可伸缩性一般
  • 基于网格的方法:对离群点不敏感,对簇形状要求任意,可伸缩性高

选择原则:数据量大 → 可伸缩算法(K-means、CLARA、STING);需要任意形状簇 → 基于密度的方法(DBSCAN);需要鲁棒性 → K-medoids、DBSCAN;不需要预先指定簇数 → 层次方法;高维数据 → 专门的高维聚类算法。

4.1 如何选择合适的聚类方法

问题:如何选择合适的聚类方法?

通俗理解 :就像选择工具,不同的工具适合不同的任务,需要根据数据特点和应用需求选择合适的聚类方法。核心作用:指导选择合适的聚类方法。

本质原理 :不同聚类方法有不同的特点和适用场景。K-means对离群点敏感,对簇形状要求凸形或球形,可伸缩性较高;K-medoids对离群点不敏感,对簇形状要求凸形或球形,可伸缩性一般;BIRCH对离群点不敏感,对簇形状要求凸形或球形,可伸缩性高;CURE对离群点不敏感,对簇形状要求任意,可伸缩性较高;DBSCAN对离群点敏感,对簇形状要求任意,可伸缩性一般。设计原因 :不同的应用场景有不同的要求,需要根据数据特点(大小、形状、噪声、维度)和应用需求(速度、精度、可解释性)选择合适的算法。决策标准:数据量大 → 可伸缩算法(K-means、CLARA、STING);需要任意形状簇 → 基于密度的方法(DBSCAN);需要鲁棒性 → K-medoids、DBSCAN;不需要预先指定簇数 → 层次方法;高维数据 → 专门的高维聚类算法。

应用边界:不同算法适合不同的场景。但实际应用中可能需要尝试多种算法,选择最适合的。


五、离群点分析:发现异常模式

!NOTE

📝 关键点总结:离群点分析的核心是识别与大多数数据显著不同的对象,离群点不同于噪声,是有趣的异常模式,需要专门的检测方法。

离群点类型

  • 统计离群点:不符合统计分布的异常值(基于统计分布的方法)
  • 距离离群点:没有"足够多"近邻的对象(基于距离的方法)
  • 密度离群点:相对于局部邻域密度远离的对象(基于密度的方法)
  • 偏差离群点:不符合数据一般行为模式的对象(基于偏差的方法)

检测方法

  • 统计方法:假设数据服从某种分布,识别不符合分布的对象(需要分布假设)
  • 距离方法:定义离群点是没有足够多近邻的对象(简单但计算复杂度高)
  • 密度方法:局部离群点相对于它的局部邻域密度是远离的(可以发现局部离群点)
  • 偏差方法:识别不符合数据一般行为模式的对象(需要定义行为模式)

选择原则:数据有分布假设 → 统计方法;需要发现局部离群点 → 密度方法;需要简单方法 → 距离方法;需要定义行为模式 → 偏差方法。

5.1 什么是离群点

问题:什么是离群点?

通俗理解 :离群点就像人群中的异类,与大多数人的行为或特征显著不同。核心作用:识别异常模式,发现有趣的数据点。

本质原理 :离群点(Outlier)是与数据集中其他数据显著不同的对象。噪声是被观测变量的随机误差或方差,噪声在数据分析中一般是无趣的(如一位顾客可能会产生"噪声交易":比通常多购买了一件产品)。离群点的产生机制不同于其他数据的产生机制,因此是有趣的(如信用卡一次购买量比卡主通常购买量大得多,可能是欺诈)。设计原因 :离群点可能表示异常事件、错误数据、或有趣的模式,需要专门的方法来识别。数据可视化对于检测有很多分类属性或高维数据中的离群点效果很差,需要自动化的离群点检测方法。决策标准:需要发现异常模式 → 离群点检测;数据有噪声 → 需要区分噪声和离群点;高维数据 → 用自动化的离群点检测方法;需要可视化 → 用数据可视化方法。

应用边界:适合需要发现异常模式的场景。但需要区分噪声和离群点,离群点检测结果需要人工验证。

5.2 基于统计分布的离群点检测

问题:如何用统计方法检测离群点?

通俗理解 :统计方法就像假设数据符合某种规律(如正态分布),不符合规律的就是离群点。核心作用:假设数据服从某种分布,识别不符合分布的对象。

本质原理 :基于统计分布的离群点检测(Statistical Approach)假设数据服从某种概率分布(如正态分布),识别不符合分布的对象。常用的方法包括:基于z-score的方法(如果 ∣ z i ∣ = ∣ x i − μ σ ∣ > 3 |z_i| = |\frac{x_i - \mu}{\sigma}| > 3 ∣zi∣=∣σxi−μ∣>3,则 x i x_i xi是离群点)、基于箱线图的方法(如果对象在 Q 1 − 1.5 × I Q R Q1 - 1.5 \times IQR Q1−1.5×IQR或 Q 3 + 1.5 × I Q R Q3 + 1.5 \times IQR Q3+1.5×IQR之外,则是离群点)、根据不同的检验统计量应用不和谐检验。设计原因 :统计方法有坚实的理论基础,适合数据确实服从某种分布的情况。但需要分布假设,如果数据不服从假设的分布,效果不好。决策标准:数据服从某种分布 → 统计方法;需要理论基础 → 统计方法;数据分布未知 → 不用统计方法(用其他方法);单变量数据 → 统计方法。

应用边界:适合数据服从某种分布、单变量数据的场景。但需要分布假设,对多变量数据效果有限。

5.3 基于距离的离群点检测

问题:如何用距离方法检测离群点?

通俗理解 :距离方法就像找孤立的人,如果一个人周围没有足够多的人(近邻),就是离群点。核心作用:定义离群点是没有"足够多"近邻的对象,其中近邻基于到给定对象的距离定义。

本质原理 :基于距离的离群点检测(Distance-Based Approach)定义离群点是没有"足够多"近邻的对象,其中近邻基于到给定对象的距离定义。常用的方法包括:k-近邻方法(如果对象的k-近邻距离大于阈值,则是离群点)、基于距离和的方法(如果对象到所有其他对象的距离和大于阈值,则是离群点)。设计原因 :距离方法简单直观,不需要分布假设,适合多变量数据。但计算复杂度高( O ( n 2 ) O(n^2) O(n2)),需要设置参数(k、阈值)。决策标准:多变量数据 → 距离方法;不需要分布假设 → 距离方法;需要简单方法 → 距离方法;数据量大 → 不用距离方法(计算复杂度高)。

应用边界:适合多变量数据、不需要分布假设的场景。但计算复杂度高,需要设置参数。

5.4 基于密度的局部离群点检测

问题:如何用密度方法检测离群点?

通俗理解 :密度方法就像找稀疏区域的人,如果一个人周围的密度很低,就是离群点。核心作用:局部离群点相对于它的局部邻域,特别是关于邻域密度,是远离的。

本质原理 :基于密度的局部离群点检测(Density-Based Local Outlier Detection)局部离群点相对于它的局部邻域,特别是关于邻域密度,是远离的。常用的方法包括:LOF(Local Outlier Factor)计算对象的局部离群因子,如果LOF值大于阈值,则是离群点;基于局部密度的比较方法。设计原因 :距离方法只能发现全局离群点,而密度方法可以发现局部离群点(在局部区域密度低但在全局可能不低)。密度方法对数据分布不敏感,适合复杂数据。决策标准:需要发现局部离群点 → 密度方法;数据分布复杂 → 密度方法;需要鲁棒性 → 密度方法;需要简单方法 → 不用密度方法(用距离方法)。

应用边界:适合需要发现局部离群点、数据分布复杂的场景。但计算复杂度高,需要设置参数。

5.5 基于偏差的离群点检测

问题:如何用偏差方法检测离群点?

通俗理解 :偏差方法就像找不符合常规行为的人,如果一个人的行为不符合大多数人的行为模式,就是离群点。核心作用:识别不符合数据一般行为模式的对象。

本质原理 :基于偏差的离群点检测(Deviation-Based Approach)识别不符合数据一般行为模式的对象。常用的方法包括:基于序列的方法(识别不符合序列模式的离群点)、基于规则的方法(识别不符合规则的对象)、基于异常行为模式的方法。设计原因 :偏差方法可以发现不符合一般行为模式的离群点,适合有时间序列或行为模式的数据。但需要定义行为模式,可能主观。决策标准:有时间序列数据 → 偏差方法;需要定义行为模式 → 偏差方法;需要发现异常行为 → 偏差方法;需要简单方法 → 不用偏差方法(用其他方法)。

应用边界:适合有时间序列、行为模式数据的场景。但需要定义行为模式,可能主观。


六、实战场景:城市社区发现

6.1 业务痛点识别

城市规划部门需要根据人口密度数据发现城市中的不同社区,以便进行合理的资源配置和规划。城市社区通常不是规则的圆形或方形,而是任意形状,而且数据中可能包含噪声(如临时聚集的人群)。传统方法(如K-means)只能发现球状簇,无法处理这种复杂情况。我们需要一个能够发现任意形状簇、对噪声鲁棒的聚类方法。

6.2 方案拆解:用核心知识点解决问题

数据特点分析 :城市人口密度数据具有以下特点:社区形状任意(不是球状)、数据有噪声(临时聚集的人群)、不需要预先指定社区数量、数据量大(百万级人口数据)。为什么这样分析:理解数据特点是选择合适算法的前提。社区形状任意意味着不能用K-means(只能发现球状簇),数据有噪声意味着需要鲁棒的算法,不需要预先指定社区数量意味着可以用DBSCAN或层次方法,数据量大意味着需要可伸缩的算法。

算法选择 :使用DBSCAN算法。为什么这样选择 :DBSCAN可以发现任意形状的簇,适合社区发现;DBSCAN对噪声鲁棒,可以自动识别噪声点(临时聚集的人群);DBSCAN不需要预先指定簇数,适合社区数量未知的情况;DBSCAN使用空间索引可以优化到 O ( n log ⁡ n ) O(n \log n) O(nlogn),适合大规模数据。

参数设置 :设置 ϵ \epsilon ϵ(邻域半径)和MinPts(最小点数)。为什么这样设置 : ϵ \epsilon ϵ控制邻域大小,太小会导致簇分裂,太大会导致簇合并,需要根据数据密度设置;MinPts控制核心对象的最小点数,太小会导致噪声点被识别为核心对象,太大会导致正常点被识别为噪声,通常设置为数据维度的2倍。

结果解释 :DBSCAN输出的簇对应城市社区,噪声点对应临时聚集的人群或异常区域。为什么这样解释:DBSCAN的簇是密度相连的点的最大集合,对应城市中人口密度高的区域(社区);噪声点是未分配到任何簇的点,对应人口密度低的区域或临时聚集的人群。

6.3 长期适配策略

参数调整 :如果聚类效果不好(如簇太多或太少),可以调整 ϵ \epsilon ϵ和MinPts。判断标准 :簇太多 → 增大 ϵ \epsilon ϵ或减小MinPts;簇太少 → 减小 ϵ \epsilon ϵ或增大MinPts;噪声点太多 → 减小 ϵ \epsilon ϵ或增大MinPts;噪声点太少 → 增大 ϵ \epsilon ϵ或减小MinPts。

算法选择 :如果数据密度差异大,可以改用OPTICS;如果需要层次结构,可以改用层次方法。判断标准:密度差异大 → OPTICS;需要层次结构 → 层次方法;需要任意形状簇且数据有噪声 → DBSCAN。

离群点检测 :如果发现异常区域(如人口密度异常高或异常低),可以使用离群点检测方法进一步分析。判断标准:需要发现异常区域 → 离群点检测;数据有分布假设 → 统计方法;需要发现局部离群点 → 密度方法(LOF)。


总结

高级聚类方法通过不同的设计理念,解决了K-means等基础方法的局限性。通用应用逻辑公式 :(1)分析数据特点(形状、噪声、大小、维度);(2)明确应用需求(速度、精度、可解释性);(3)选择合适算法(需要任意形状簇→DBSCAN,不需要预先指定簇数→层次方法,数据量大→基于网格的方法);(4)设置参数(如DBSCAN的 ϵ \epsilon ϵ和MinPts);(5)评估结果(验证聚类效果,调整参数);(6)离群点检测(如需要,使用离群点检测方法发现异常模式)。

可直接套用的落地模板 :(1)算法选择 :需要任意形状簇→DBSCAN,不需要预先指定簇数→层次方法,数据量大→基于网格的方法(STING),数据有噪声→DBSCAN或K-medoids;(2)参数设置 :DBSCAN的 ϵ \epsilon ϵ根据数据密度设置,MinPts通常设置为数据维度的2倍,层次方法的合并准则根据数据特点选择(单链接/全链接/平均链接);(3)离群点检测 :数据有分布假设→统计方法,需要发现局部离群点→密度方法(LOF),需要简单方法→距离方法;(4)结果验证 :可视化聚类结果(如树状图、散点图),结合领域知识验证,调整参数优化效果;(5)方法对比:尝试多种算法,选择最适合的,不同算法可能适合不同的应用场景。

相关推荐
小殊小殊44 分钟前
重磅!DeepSeek发布V3.2系列模型!
论文阅读·人工智能·算法
丝斯20111 小时前
AI学习笔记整理(19)—— AI核心技术(深度学习3)
人工智能·笔记·学习
自然语1 小时前
深度学习时代结束了,2025年开始只剩下轮廓
数据结构·人工智能·深度学习·学习·算法
dagouaofei1 小时前
年终总结PPT用AI最快生成
人工智能·python·powerpoint
、、、、南山小雨、、、、1 小时前
云主机GPU pyTorch部署
人工智能·pytorch·python
让学习成为一种生活方式1 小时前
基因组结构注释实战案例1--随笔14
人工智能·算法·机器学习
散峰而望1 小时前
AI 知识科普
人工智能·python·深度学习·机器学习·计算机视觉
西柚小萌新1 小时前
【论文阅读】--多模态大语言模型的安全性研究综述
人工智能·语言模型·自然语言处理
机器之心1 小时前
刚刚,「欧洲的DeepSeek」发布Mistral 3系列模型,全线回归Apache 2.0
人工智能·openai