聚类算法:K-means与期望最大化(EM)算法详解
1. 聚类概述
聚类是指将数据对象集合进行分组,使得同一组内的数据对象彼此相似,而与其他组的数据对象不同。聚类算法是无监督学习的一个典型例子,在这种学习场景中,给定的训练集只有输入数据,没有目标标签。聚类的主要目标是通过将相似的点分组,在数据中发现结构。
聚类在实际应用中有很多用途,例如数据压缩。通过生成代表每个簇的中心点(质心),可以用较少的质心来替代原始数据集,从而实现数据的压缩。接下来将主要介绍两种聚类方法:K-means和基于高斯混合模型的期望最大化(EM)算法。
2. K-means聚类算法
2.1 算法原理
K-means算法的训练集由N个无目标标签的观测值 (X = (x_1, x_2, \cdots, x_k, \cdots, x_N)) 组成。其目标是将数据集划分为K个簇,这里暂时假设K的值是已知的。该算法使用欧几里得距离函数 (d_2(x, y) = |x - y| = \sqrt{\sum_{j = 1}^{D}(x_j - y_j)^2}) 来选择簇,使得同一簇内点之间的距离相对较小,而不同簇之间点的距离相对较大。
算法执行后,会得到K个质心 (c_1, c_2, \cdots, c_K) 和K个簇 (C_1, C_2, \cdots, C_K)。其中,簇 (C_k) 定义为比其他所有质心更接近质心 (c_k) 的点的集合,即 (C_k = {x|d_2(x, c_k) = \min_{j = 1, \cdots, K} d_2(x, c_j)})。质心 (c_k) 是属于 (C_k) 的所有点的平均值,即 (c_k = \frac{1
超级会员免费看
订阅专栏 解锁全文
830

被折叠的 条评论
为什么被折叠?



