各种聚类算法介绍及对比 (2).pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【聚类算法】是数据分析中的重要工具,用于无监督学习,将数据集中的样本自动分成不同的组或类别,不依赖于预先标记的信息。本篇主要介绍两种常见的聚类方法:层次聚类和划分聚类。 **一、层次聚类** 层次聚类是一种递归的方法,通过合并或分裂数据点来构建一个层次结构。根据合并顺序,层次聚类分为两类: 1. **凝聚的层次聚类(Agglomerative)**,也称为自下而上方法。初始时,每个数据点被视为独立的类别,随后逐步合并最近的类别,直至所有数据点归为一个类别,或满足预设的停止条件。常用的距离计算方法包括最短距离法、最长距离法、中间距离法和类平均法,其中类平均法因其稳定性和适度的类扩散性而被广泛采用。 2. **分裂的层次聚类(Divisive)**,或称自上而下方法。开始时,所有数据点被视作一个类别,然后逐渐分裂,直到每个数据点单独成类。两种方法各有适用场景,具体选择取决于数据特性和所需类别数量。 层次聚类算法有多种变体,如BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies),适合大规模数值数据,通过树结构初步划分后再优化;ROCK适用于分类数据;Chameleon则采用k-最近邻(k-NN)构建图谱,虽效果出色,但计算复杂度高。 **二、凝聚的层次聚类流程** 以最小距离为基础的凝聚层次聚类算法步骤如下: 1. 每个数据点视为独立类别,计算所有类别间的最小距离。 2. 合并距离最近的两个类别,形成新类别。 3. 重新计算新类别与其他类别的距离。 4. 重复步骤2和3,直至所有数据点都在同一类别,或达到预设的终止条件。 层次聚类的优点包括:相似度定义灵活,无需预设类别数,能揭示类别的层次结构。但其缺点也很明显:计算复杂度高,奇异值影响显著,且一旦合并类别就无法撤销。 在R语言中,`hclust`函数可用于执行层次聚类,方法参数包括单链、全链、中链、平均法、质心法和 Ward 法等多种距离计算方法。 **三、划分聚类法 k-means** k-means是一种基于划分的聚类方法,其基本思想是迭代地调整类别中心和分配数据点,直至达到稳定状态。过程包括: 1. 初始化k个中心点。 2. 计算每个数据点到所有中心点的距离,将其分配给最近的中心点所在的类别。 3. 更新每个类别的中心点为其内所有点的均值。 4. 重复步骤2和3,直至中心点不再显著移动或达到最大迭代次数。 k-means简单且适用于中等规模数据,但需预先设定类别数k,且可能受初始中心点选择的影响,可能出现局部最优解。 总结,层次聚类和k-means各有优势,适用于不同场景。层次聚类对类别数不敏感,利于发现层次结构,但计算成本高;k-means计算效率高,但需要预先指定类别数,且易受初始点选择影响。选择合适的聚类方法应结合数据特性和分析目标。
- 粉丝: 6287
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助