机器学习聚类算法学习报告

一、学习背景与目标

在机器学习领域,聚类算法作为无监督学习的重要分支,旨在将无标签数据按照数据分布特征进行分组,使相似数据归为同一簇。学习聚类算法有助于深入理解数据的内在结构,挖掘潜在信息,为后续数据分析、模式识别、异常检测等任务奠定基础。本次学习聚焦于常见聚类算法的原理、应用场景及实践操作,以提升对数据处理和模型构建的能力。

二、学习内容

(一)距离度量方法

在聚类算法中,距离度量是衡量样本间相似度的关键。常见的距离度量方法有欧式距离、曼哈顿距离和闵可夫斯基距离。

  1. 欧式距离:定义了连续空间中两点间的 "几何距离",强调全局最短路径,如在二维平面中,两点\((x_1, y_1)\)与\((x_2, y_2)\)的欧式距离为\(\sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}\) 。在聚类分析里,像 K-Means 聚类算法常用欧式距离衡量样本点与聚类中心的距离 。
  2. 曼哈顿距离:又称 "城市街区距离" 或 "L1 距离",表示两点间的路径长度,假设只能沿水平和垂直方向移动,类似网格状街道上的步行距离。例如在二维平面上,两点\(a(x_1, y_1)\)与\(b(x_2, y_2)\)的曼哈顿距离为\(|x_1 - x_2| + |y_1 - y_2|\) 。它更适用于离散或网格化的场景。
  3. 闵可夫斯基距离:其定义为\(D(x, y) = (\sum_{i = 1}^n |x_i - y_i|^p)^{\frac{1}{p}}\) ,当\(p = 1\)时,就是曼哈顿距离;当\(p = 2\)时,即为欧式距离;当\(p \rightarrow \infty\)时,是切比雪夫距离。可见,曼哈顿距离、欧氏距离等都是闵可夫斯基的特殊形式。

(二)聚类算法分类与原理

聚类算法主要分为划分聚类和层次聚类。

  1. 划分聚类
    • K-Means 聚类算法:是基于划分的典型聚类算法,目标是将数据集划分为 K 个簇,使簇内数据点到所属簇质心(均值点)的距离平方和最小。算法先随机初始化 K 个质心,然后迭代两个步骤:一是把每个数据点分配到离其最近的质心所在簇;二是更新每个簇的质心为该簇所有数据点的均值。例如在客户细分场景中,可依据客户消费行为、年龄、地域等特征,运用 K-Means 将客户分为不同群体,以实现针对性营销 。但该算法存在不足,聚类个数 K 值难以把握,受初始聚类中心选择影响大,只适合分离较远不相交的类球形簇,且结果易陷入局部最优,对噪音和异常点敏感。
    • 高斯混合模型(GMM):假设数据由多个高斯分布混合而成,每个高斯分布有自身的均值、协方差和权重,通过期望最大化(EM)算法估计参数来确定聚类。在 E 步计算每个数据点属于每个高斯分量的后验概率,M 步更新高斯分量参数。如在语音识别领域,不同语音可能来自不同高斯分布,GMM 可用于对语音信号聚类 。
  2. 层次聚类 构建簇的层次结构,有凝聚式和分裂式两种方法。凝聚式从每个数据点作为单独簇开始,逐步合并相似簇;分裂式则相反,从所有数据点在一个簇开始,逐步分裂。在合并或分裂过程中,需定义簇间距离度量,如单连接(两个簇中最近两点距离)、全连接(两个簇中最远两点距离)和平均连接(两个簇中所有点对距离平均值)等。例如在生物学中对物种分类,可从个体开始逐步向上合并形成属、科等更高层次分类 。层次聚类能输出具有层次结构的簇集合,提供比划分聚类更丰富信息,但聚类结果可解释性较弱,收敛速度慢,对数据集初始状态敏感。

(三)其他重要聚类算法

  1. DBSCAN 算法:基于密度的空间聚类算法,定义核心点(在给定半径内包含足够多邻居点)和边界点。若一个点是核心点,它和其密度可达点构成一个簇。与 K-Means 不同,DBSCAN 无需预先指定簇数量,能发现任意形状的簇,还能识别数据集中的噪声点。在地理信息系统中,可用于分析城市、人口等分布情况,依据人口密度等因素划分不同聚集区域 。不过,该算法需选择合适参数,特别是半径 ε 的值,不同数据集适用参数不同。
  2. 谱聚类:根据给定样本数据集定义描述成对数据点相似度的亲合矩阵,计算矩阵特征值和特征向量,选择合适特征向量聚类不同数据点。对数据分布适应性强,能发现非凸形状的簇。在计算机视觉的图像分割中应用广泛,可很好处理具有复杂形状的物体分割 。
  3. Mean-Shift 聚类:基于核密度估计的聚类算法,每个数据点有对应的核函数,通过计算数据点在核函数下的密度梯度,沿密度梯度上升方向移动数据点直至收敛,收敛点为簇中心,最后将距离近的收敛点对应的原始数据点划分为一个簇。在图像和视频处理的目标跟踪、数据挖掘的热点区域发现等领域发挥作用 。
  4. Affinity Propagation(AP)聚类:通过数据点间的消息传递确定聚类中心,每个数据点向其他数据点发送吸引信息和归属信息,经多次迭代确定代表聚类中心的数据点和每个数据点所属簇。无需预先指定簇数量,但计算复杂度相对较高。在社交网络分析中可用于发现社交圈子的中心人物和成员划分 。
  5. BIRCH 算法:综合层次聚类和基于划分聚类思想,构建 CF-Tree(Clustering Feature Tree)树状结构存储数据聚类特征,包括数据点数量、线性和以及平方和等信息。通过对 CF-Tree 操作,可快速对数据初步聚类,并动态调整聚类结果。适用于大规模数据集的聚类,如大型电子商务网站对用户交易数据聚类,以发现购买行为相似的用户群体 。
  6. OPTICS 算法:基于密度的聚类算法,类似 DBSCAN,通过生成排序后的数据集展示数据聚类结构,该排序考虑数据点的密度可达性,分析排序可得到不同密度的簇及噪声点。在探索性数据分析中,用于分析数据密度分布和聚类结构,尤其当数据存在多种密度的簇时效果良好 。
  7. 模糊 C - 均值聚类:与 K-Means 不同,允许每个数据点以一定隶属度属于多个簇,通过最小化目标函数确定每个数据点对各个簇的隶属度和簇中心。在气象数据分析、医学诊断等具有模糊性的分类问题中应用 。

三、学习收获与体会

通过本次对机器学习聚类算法的学习,深入掌握了多种聚类算法的原理、优缺点及适用场景。了解到不同距离度量方法在聚类中的应用差异,以及划分聚类和层次聚类等不同类型算法的特点。在实践中,通过对各种算法的编码实现和调优,提升了编程能力和对机器学习模型的理解。认识到在实际应用中,需根据数据特点和业务需求选择合适的聚类算法,如对于形状不规则的数据,DBSCAN 算法可能更合适;而对于简单的球形簇数据,K-Means 算法实现简单且效果较好。同时,聚类算法的评价指标(如轮廓系数)对于评估聚类结果质量、选择最优参数也至关重要。

四、学习不足与展望

学习过程中,对部分算法(如谱聚类中涉及的图论知识、GMM 中 EM 算法的数学推导)的理解还不够深入,仅停留在算法应用层面,对其底层数学原理掌握不足。在处理大规模数据时,算法的效率和可扩展性方面的实践经验较少。未来计划进一步深入学习算法的数学原理,加强对算法复杂度分析的学习,提升对大规模数据处理的能力。尝试将聚类算法与其他机器学习技术(如深度学习)相结合,探索在更复杂场景下的应用,如在图像识别中先通过聚类算法对图像特征进行预处理,再输入深度学习模型进行分类,以提高模型性能。