大家好,这里是好评笔记,本文为试读,查看全文请移步公主号:Goodnote。本笔记介绍机器学习中常见的聚类算法(Kmeans、GMM-使用EM优化)。
@[toc]
聚类
K-Means
K-Means 是一种经典的聚类算法,用于将数据集划分为 K 个簇,每个簇由其质心(簇中心)表示。算法的目标是最小化簇内样本点到质心的平方距离之和,从而使得同一个簇内的样本更加相似。
工作原理
- 选择初始质心:随机选择 K 个点作为初始质心。
- 分配样本到最近的质心:将每个样本分配给距离最近的质心,形成 K 个簇。
- 更新质心:重新计算每个簇的质心,即簇内所有样本的平均值。
- 重复步骤 2 和 3,直到质心不再变化或达到最大迭代次数。
特点
- 优点:简单易实现,计算速度快,适合大规模数据集。
- 缺点:对初始质心敏感,容易陷入局部最优;K-Means 基于欧氏距离,通常只能处理球形或凸形簇。
K-Medoids
K-Medoids(也称为 PAM,Partitioning Around Medoids)是一种基于原型的聚类算法,与 K-Means 类似,但它选择数据点本身作为质心(称为 Medoid),而不是质心的平均值。
工作原理
- 选择初始 Medoid:随机选择 K 个数据点作为初始 Medoid。
- 分配样本到最近的 Medoid:将每个样本分配给距离最近的 Medoid,形成 K 个簇。
- 更新 Medoid:在每个簇内选择一个新的数据点,使得该点到簇内所有其他点的距离之和最小。
- 重复步骤 2 和 3,直到 Medoid 不再变化或达到最大迭代次数。
更新 Medoid如何做:
- 计算每个点的总距离:对于簇内的每个数据点 ,计算该点到簇内所有其他点的距离之和;
- 选择距离最小的点:找到使得距离之和最小的那个点作为新的 Medoid。
计算量很大
特点
- 优点:对异常值不敏感(因为选择实际数据点作为 Medoid),适合非球形簇。
- 缺点:计算复杂度高,不适合大规模数据集。
Mini-Batch K-Means
Mini-Batch K-Means 是 K-Means 的一种扩展,旨在提高计算效率和速度。它通过在每次迭代中使用小批量的随机样本来更新质心,而不是使用整个数据集。
工作原理
详细全文请移步公主号:Goodnote。