】惰性学习之分类聚类【2】:高级方法(分层方法、基于密度:DBSCAN、网格方法)与离群点分析)
文章目录本文内容一览快速理解总结口诀一、层次方法不需要预先指定簇数1.1 凝聚层次聚类自底向上合并1.2 分裂层次聚类自顶向下分裂1.3 层次方法的改进ROCK和CHAMELEON二、基于密度的方法发现任意形状的簇2.1 DBSCAN发现任意形状的簇2.2 OPTICS和DENCLUEDBSCAN的改进三、基于网格的方法大规模数据的高效处理3.1 基于网格的方法原理四、方法对比和选择4.1 如何选择合适的聚类方法五、离群点分析发现异常模式5.1 什么是离群点5.2 基于统计分布的离群点检测5.3 基于距离的离群点检测5.4 基于密度的局部离群点检测5.5 基于偏差的离群点检测六、实战场景城市社区发现6.1 业务痛点识别6.2 方案拆解用核心知识点解决问题6.3 长期适配策略总结本文内容一览快速理解层次聚类是什么自底向上合并或自顶向下分裂形成层次结构不需要预先指定簇数但计算复杂度高不适合大规模数据DBSCAN如何工作基于密度发现任意形状的簇对噪声鲁棒不需要预先指定簇数但需要设置参数ϵ \epsilonϵ和MinPts对参数敏感基于网格的方法将空间划分为网格单元利用统计信息聚类适合大规模数据但精度有限只能发现网格单元大小的簇如何选择聚类方法数据量大→可伸缩算法K-means、STING需要任意形状簇→DBSCAN需要鲁棒性→K-medoids不需要预先指定簇数→层次方法离群点是什么与大多数数据显著不同的对象不同于噪声是有趣的异常模式需要专门的检测方法如何检测离群点统计方法有分布假设距离方法简单但计算复杂度高密度方法可以发现局部离群点偏差方法需要定义行为模式城市社区发现实战数据特点任意形状、有噪声、数据量大选择DBSCAN发现任意形状簇、对噪声鲁棒设置参数ϵ \epsilonϵ和MinPts根据效果调整方法对比原则根据数据特点大小、形状、噪声、维度和应用需求速度、精度、可解释性选择合适的算法可能需要尝试多种算法总结口诀层次聚类自底向上合并 → 形成层次结构 → 不需要预先指定簇数DBSCAN基于密度 → 任意形状簇 → 对噪声鲁棒方法选择大数据→可伸缩任意形状→DBSCAN鲁棒性→K-medoids离群点检测统计方法→有分布假设距离方法→简单直观密度方法→局部离群点参数调整簇太多→增大ϵ \epsilonϵ簇太少→减小ϵ \epsilonϵ噪声多→调整MinPts一、层次方法不需要预先指定簇数[!NOTE] 关键点总结层次方法通过自底向上合并或自顶向下分裂形成层次结构不需要预先指定簇数但计算复杂度高不适合大规模数据。核心机制凝聚层次聚类自底向上合并对象从每个对象开始逐步合并最相似的对象分裂层次聚类自顶向下分裂对象从所有对象开始逐步分裂成越来越小的簇合并准则单链接最近距离、全链接最远距离、平均链接平均距离、质心链接质心距离树状图可视化层次结构可以通过修剪获得不同数量的簇决策标准不需要预先指定簇数 → 层次方法需要层次结构 → 层次方法数据量大10万 → 不用层次方法用划分方法需要快速聚类 → 不用层次方法用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)不适合大规模数据10万对象。决策标准不需要预先指定簇数 → 层次方法需要层次结构 → 层次方法数据量大10万 → 不用层次方法用划分方法需要快速聚类 → 不用层次方法用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首先将所有对象置于一个簇中然后将它逐渐细分为越来越小的簇直到每个对象自成一簇或者达到某个终止条件。分裂准则通常选择使簇内相似性最小或簇间相似性最大的分裂点。分裂层次聚类和凝聚层次聚类类似不需要预先指定簇数可以形成层次结构。但分裂方法通常计算复杂度更高因为需要在每一步选择最佳分裂点。实际应用示例在组织管理中可以根据员工的特征如技能、经验进行分裂层次聚类先分成几个大部门再分成小组。在客户分析中可以根据客户的购买行为进行分裂层次聚类先分成几个大客户群体再分成细分群体。应用边界适合需要层次结构、不需要预先指定簇数的场景。但计算复杂度高通常不如凝聚方法常用。算法复杂度时间复杂度O ( 2 n ) O(2^n)O(2n)最坏情况其中n是对象数。空间复杂度O ( n ) O(n)O(n)。1.3 层次方法的改进ROCK和CHAMELEON对于纯粹的层次聚类方法一旦合并或分裂执行就不能修正。改进方法包括ROCKRObust Clustering using linKsROCK使用链接两个对象共同拥有的邻居数来衡量相似性适合分类属性数据。CHAMELEON变色龙算法首先使用图划分算法将数据分成多个子簇然后使用动态建模方法合并子簇可以发现任意形状的簇。传统层次方法有局限性如只能处理数值数据、不能发现任意形状的簇等。改进算法针对特定问题提供更好的解决方案。实际应用示例在购物篮分析中ROCK可以根据客户购买的商品分类属性进行聚类发现具有相似购买行为的客户群体。在图像分割中CHAMELEON可以发现任意形状的图像区域。应用边界适合特定类型的数据和问题。但改进算法通常更复杂计算成本更高。决策标准分类属性数据 → ROCK需要任意形状簇 → CHAMELEON需要动态调整 → CHAMELEON传统层次方法不适用 → 改进算法。二、基于密度的方法发现任意形状的簇[!NOTE] 关键点总结基于密度的方法通过识别高密度区域发现任意形状的簇对噪声鲁棒不需要预先指定簇数但需要设置密度参数对参数敏感。核心机制DBSCAN基于高密度连通区域可以发现任意形状的簇自动识别噪声点OPTICSDBSCAN的扩展可以发现不同密度的簇DENCLUE基于密度分布函数有坚实的数学基础适合高维数据核心概念ϵ \epsilonϵ-邻域、MinPts、核心对象、密度直达、密度相连决策标准需要任意形状簇 → DBSCAN数据有噪声 → DBSCAN不需要预先指定簇数 → DBSCAN数据密度差异大 → OPTICS高维数据 → DENCLUE需要设置参数 → DBSCAN。2.1 DBSCAN发现任意形状的簇DBSCAN就像找人群密度高的地方是一群人簇密度低的地方是空地噪声可以发现任意形状的人群。就像在人群中找朋友如果周围有很多人密度高就是在一个群体中如果周围人很少密度低就是离群的人。DBSCANDensity-Based Spatial Clustering of Applications with Noise是基于高密度连通区域的基于密度的聚类算法。将具有足够高密度的区域划分为簇并在具有噪声的空间数据库中发现任意形状的簇将簇定义为密度相连的点的最大集合。核心概念ϵ \epsilonϵ-邻域对象周围半径为ϵ \epsilonϵ的区域MinPtsϵ \epsilonϵ-邻域内最少对象数核心对象ϵ \epsilonϵ-邻域内对象数≥MinPts的对象密度直达对象q在核心对象p的ϵ \epsilonϵ-邻域内密度相连存在核心对象o使得p和q都密度可达o算法步骤找到所有核心对象从核心对象开始找到所有密度可达的对象形成簇未分配到任何簇的对象标记为噪声K-means等划分方法只能发现球状簇而DBSCAN可以发现任意形状的簇。DBSCAN对噪声鲁棒可以自动识别噪声点。不需要预先指定簇数但需要设置参数ϵ \epsilonϵ和MinPts。实际应用示例在城市社区发现中DBSCAN可以根据人口密度数据发现任意形状的社区自动识别噪声点如临时聚集的人群。在图像分割中DBSCAN可以发现任意形状的图像区域。决策标准需要任意形状簇 → DBSCAN数据有噪声 → DBSCAN不需要预先指定簇数 → DBSCAN数据密度差异大 → DBSCAN效果差需要设置参数 → DBSCAN。算法复杂度时间复杂度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和DENCLUEDBSCAN的改进改进DBSCAN处理参数敏感、密度差异大等问题。OPTICSOrdering Points To Identify the Clustering Structure根据邻域对象的密度根据某种密度函数生成数据聚类结构的一个增广序可以发现不同密度的簇。OPTICS不需要预先设置ϵ \epsilonϵ而是生成一个排序可以根据需要选择不同的ϵ \epsilonϵ值。DENCLUEDENsity-based CLUstEring基于密度分布函数的聚类算法每个数据点的影响可以用一个数学函数形式化建模影响函数数据空间的整体密度可以用所有数据点的影响函数的和建模簇可以通过识别密度吸引点density attractor数学确定其中密度吸引点是全局密度函数的局部极大值。实际应用示例在城市分析中如果城市有不同密度的区域如市中心密度高郊区密度低OPTICS可以发现这些不同密度的区域。在图像分析中DENCLUE可以处理高维图像特征发现任意形状的图像区域。应用边界适合密度差异大、高维数据、需要数学基础的场景。但算法更复杂计算成本更高。决策标准密度差异大 → OPTICS需要数学基础 → DENCLUE高维数据 → DENCLUE需要不同密度簇 → OPTICS需要单一密度簇 → DBSCAN。三、基于网格的方法大规模数据的高效处理[!NOTE] 关键点总结基于网格的方法将空间划分为网格单元利用网格单元中的统计信息进行聚类适合大规模数据但精度有限。核心机制网格划分将空间区域划分为多层次矩形单元统计信息利用存储在网格单元中的统计信息进行聚类分析STING典型的基于网格的方法适合大规模数据计算效率只需要处理网格单元而不是所有数据点计算复杂度低决策标准数据量大百万级 → 基于网格的方法需要快速聚类 → 基于网格的方法需要高精度 → 不用基于网格的方法用其他方法。3.1 基于网格的方法原理问题如何高效处理大规模数据通俗理解基于网格的方法就像把空间分成小格子统计每个格子的信息然后根据格子信息进行聚类。就像把地图分成网格统计每个网格的人口密度然后根据密度进行聚类。核心作用将空间划分为网格单元利用网格单元中的统计信息进行聚类适合大规模数据。本质原理基于网格的方法Grid-based methods将空间区域划分为多层次矩形单元利用存储在网格单元中的统计信息进行聚类分析。STINGStatistical Information Grid是典型的基于网格的方法将空间区域划分为多层次矩形单元利用存储在网格单元中的统计信息进行聚类分析。基于网格的方法适合大规模数据因为只需要处理网格单元而不是所有数据点计算复杂度低。但只能发现网格单元大小的簇精度有限。实际应用示例在城市分析中可以将城市划分为网格单元统计每个网格的人口密度、收入水平等信息然后根据这些信息进行聚类发现不同的城市区域。在图像分析中可以将图像划分为网格单元统计每个网格的颜色、纹理等信息然后进行聚类。应用边界适合大规模数据、需要快速聚类的场景。但精度有限只能发现网格单元大小的簇。决策标准数据量大百万级 → 基于网格的方法需要快速聚类 → 基于网格的方法需要高精度 → 不用基于网格的方法用其他方法需要任意形状簇 → 不用基于网格的方法用DBSCAN。算法复杂度时间复杂度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是与数据集中其他数据显著不同的对象。噪声是被观测变量的随机误差或方差噪声在数据分析中一般是无趣的如一位顾客可能会产生噪声交易比通常多购买了一件产品。离群点的产生机制不同于其他数据的产生机制因此是有趣的如信用卡一次购买量比卡主通常购买量大得多可能是欺诈。离群点可能表示异常事件、错误数据、或有趣的模式需要专门的方法来识别。数据可视化对于检测有很多分类属性或高维数据中的离群点效果很差需要自动化的离群点检测方法。实际应用示例在信用卡欺诈检测中如果某次交易的金额远大于客户通常的交易金额可能是欺诈离群点。在医疗诊断中如果某个病人的指标远高于正常范围可能是疾病离群点。在网络安全中如果某个IP地址的行为模式异常可能是攻击离群点。应用边界适合需要发现异常模式的场景。但需要区分噪声和离群点离群点检测结果需要人工验证。决策标准需要发现异常模式 → 离群点检测数据有噪声 → 需要区分噪声和离群点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_ixi是离群点其中μ \muμ是均值σ \sigmaσ是标准差基于箱线图的方法如果对象在Q 1 − 1.5 × I Q R Q1 - 1.5 \times IQRQ1−1.5×IQR或Q 3 1.5 × I Q R Q3 1.5 \times IQRQ31.5×IQR之外则是离群点其中Q 1 Q1Q1是第一四分位数Q 3 Q3Q3是第三四分位数I Q R IQRIQR是四分位距根据不同的检验统计量应用不和谐检验统计方法有坚实的理论基础适合数据确实服从某种分布的情况。但需要分布假设如果数据不服从假设的分布效果不好。实际应用示例在质量控制中如果产品的尺寸不符合正态分布可能是次品离群点。在金融分析中如果股票收益率不符合正态分布可能是异常交易离群点。应用边界适合数据服从某种分布、单变量数据的场景。但需要分布假设对多变量数据效果有限。5.3 基于距离的离群点检测距离方法就像找孤立的人如果一个人周围没有足够多的人近邻就是离群点。本质原理基于距离的离群点检测Distance-Based Approach定义离群点是没有足够多近邻的对象其中近邻基于到给定对象的距离定义。常用的方法包括k-近邻方法如果对象的k-近邻距离大于阈值则是离群点基于距离和的方法如果对象到所有其他对象的距离和大于阈值则是离群点距离方法简单直观不需要分布假设适合多变量数据。但计算复杂度高O ( n 2 ) O(n^2)O(n2)需要设置参数k、阈值。实际应用示例在客户分析中如果某个客户的购买行为与其他客户差异很大距离远可能是异常客户离群点。- 在图像分析中如果某个像素的颜色与其他像素差异很大可能是异常像素离群点。应用边界适合多变量数据、不需要分布假设的场景。但计算复杂度高需要设置参数。5.4 基于密度的局部离群点检测密度方法就像找稀疏区域的人如果一个人周围的密度很低就是离群点。就像在人群中如果某个人周围的密度很低就是离群的人。常用的方法包括LOFLocal Outlier Factor计算对象的局部离群因子如果LOF值大于阈值则是离群点。LOF值越大表示对象越可能是离群点基于局部密度的比较方法比较对象的局部密度与邻域对象的平均密度如果密度差异大则是离群点距离方法只能发现全局离群点而密度方法可以发现局部离群点在局部区域密度低但在全局可能不低。密度方法对数据分布不敏感适合复杂数据。实际应用示例在客户分析中如果某个客户在某个区域的购买行为与其他客户差异很大局部密度低可能是异常客户局部离群点。在网络安全中如果某个IP地址在某个时间段的行为异常局部密度低可能是攻击局部离群点。应用边界适合需要发现局部离群点、数据分布复杂的场景。但计算复杂度高需要设置参数。需要发现局部离群点 → 密度方法数据分布复杂 → 密度方法需要鲁棒性 → 密度方法需要简单方法 → 不用密度方法用距离方法。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ϵ控制邻域大小太小会导致簇分裂太大会导致簇合并需要根据数据密度设置如根据k-距离图选择MinPts 控制核心对象的最小点数太小会导致噪声点被识别为核心对象太大会导致正常点被识别为噪声通常设置为数据维度的2倍如2维数据设置为4。结果解释DBSCAN输出的簇对应城市社区噪声点对应临时聚集的人群或异常区域。为什么这样解释DBSCAN的簇是密度相连的点的最大集合对应城市中人口密度高的区域社区噪声点是未分配到任何簇的点对应人口密度低的区域或临时聚集的人群。完整流程数据预处理准备人口密度数据经纬度、人口密度参数选择使用k-距离图选择ϵ \epsilonϵ根据数据维度设置 MinPtsDBSCAN聚类运行DBSCAN算法发现城市社区结果分析分析每个社区的特征人口密度、面积、位置识别噪声点临时聚集的人群可视化在地图上可视化社区和噪声点为城市规划提供依据6.3 长期适配策略参数调整如果聚类效果不好如簇太多或太少可以调整ϵ \epsilonϵ和 MinPts。判断标准簇太多 → 增大ϵ \epsilonϵ或减小 MinPts簇太少 → 减小ϵ \epsilonϵ或增大 MinPts噪声点太多 → 减小ϵ \epsilonϵ或增大 MinPts噪声点太少 → 增大ϵ \epsilonϵ或减小 MinPts。算法选择如果数据密度差异大可以改用OPTICS如果需要层次结构可以改用层次方法。判断标准密度差异大如市中心密度高郊区密度低 → OPTICS需要层次结构如社区-街道-建筑 → 层次方法需要任意形状簇且数据有噪声 → DBSCAN。离群点检测如果发现异常区域如人口密度异常高或异常低可以使用离群点检测方法进一步分析。判断标准需要发现异常区域 → 离群点检测数据有分布假设 → 统计方法需要发现局部离群点 → 密度方法LOF需要简单方法 → 距离方法。数据更新如果城市人口数据更新可以重新运行DBSCAN算法或者使用增量聚类方法。判断标准数据变化大如新增大量人口 → 重新运行DBSCAN数据变化小如小幅更新 → 使用增量聚类需要实时更新 → 使用增量聚类。总结高级聚类方法通过不同的设计理念解决了K-means等基础方法的局限性。可直接套用的落地模板1算法选择需要任意形状簇→DBSCAN不需要预先指定簇数→层次方法数据量大→基于网格的方法STING数据有噪声→DBSCAN或K-medoids2参数设置DBSCAN的ϵ \epsilonϵ根据数据密度设置使用k-距离图MinPts通常设置为数据维度的2倍层次方法的合并准则根据数据特点选择单链接/全链接/平均链接3离群点检测数据有分布假设→统计方法需要发现局部离群点→密度方法LOF需要简单方法→距离方法4结果验证可视化聚类结果如树状图、散点图结合领域知识验证调整参数优化效果5方法对比尝试多种算法选择最适合的不同算法可能适合不同的应用场景。