大模型RAG技术:从入门到实践
聚类:探索数据聚合的奥秘
1. 什么是聚类
定义与基本概念
聚类(Clustering)是一种通过特定标准(如距离)将数据集划分为不同类或簇的方法。其目的是最大化同一簇内数据对象的相似性,同时最大化不同簇间数据对象的差异性。这意味着聚类后,同类数据应尽量聚集在一起,而不同类数据应尽量分离。
聚类与分类的区别
-
聚类(Clustering):这种方法将相似的数据划分到一起,而不关注这些类的标签。其目标是将相似的数据聚合到一起,是一种无监督学习(Unsupervised Learning)方法。
-
分类(Classification):这种方法将不同的数据划分开来,通过训练数据集获得一个分类器,再通过分类器预测未知数据,是一种监督学习(Supervised Learning)方法。
聚类过程概述
- 数据准备:特征标准化和降维。
- 特征选择:选择最有效的特征,并存储在向量中。
- 特征提取:转换选择的特征以形成新的突出特征。
- 聚类:基于某种距离函数进行相似度度量,获取簇。
- 聚类结果评估:分析聚类结果,如距离误差和(SSE)等。
2. 聚类方法
在数据科学中,聚类方法繁多,以下是一些常见的方法。
2.1 划分式聚类方法
划分式聚类方法需要事先指定簇类的数目或者聚类中心,通过反复迭代,直至达到"簇内的点足够近,簇间的点足够远"的目标。
k-means
k-means是最经典的划分式聚类方法之一。其核心在于:
- 随机选择k个中心点作为初始聚类中心。
- 计算每个样本到中心点的距离,并将其划分到距离最近的簇。
- 重新计算各簇的中心。
- 重复上述步骤至收敛。
k-means++
k-means++是k-means的改进版本,优化了初始质心点的选择,从而提高聚类的效果和收敛速度。
基于密度的方法
基于密度的方法适合处理非凸形状的数据,如DBSCAN算法,其特点包括:
- 需要设定密度邻域半径和领域密度阈值。
- 不需要事先设定聚类的个数。
DBSCAN
DBSCAN可以识别任意形状的簇,并能识别出噪声数据点。其主要步骤如下:
- 从未访问过的点开始,提取其ε邻域内的点。
- 如果邻域内的点数大于某个阈值,则形成一个新簇。
- 重复直到所有点被访问。
层次化聚类算法
层次化聚类算法将数据集划分为一层层的clusters,一般分为两类:
- Agglomerative 层次聚类:自底向上的层次聚类,每个对象最开始都是一个cluster,逐步合并。
- Divisive 层次聚类:自顶向下的层次聚类,最开始所有对象均属于一个cluster,逐步划分。
核聚类
核聚类通过非线性映射,将数据点映射到高维特征空间中,并选取合适的Mercer核函数代替非线性映射的内积,从而实现更为准确的聚类。
支持向量聚类
支持向量聚类(SVC)以支持向量机为工具进行聚类,通过高斯核将数据点映射到高维特征空间,寻找能包围所有数据点的最小球。
谱聚类
谱聚类基于图论,通过构建相似度矩阵,构造拉普拉斯矩阵,计算特征值和特征向量,将数据点从原始空间映射到低维空间进行聚类。
3. 结论
聚类算法在数据分析中发挥着重要作用,通过不同的方法适应各种数据类型和需求。无论是k-means的简单高效,还是DBSCAN的无参数优势,都为我们揭示了数据的潜在结构。
FAQ
-
问:聚类与分类有什么区别?
- 答:聚类是一种无监督学习方法,目标是将相似的数据聚合到一起,而分类是通过训练数据集获得分类器去预测未知数据,是一种监督学习方法。
-
问:k-means算法的主要缺点是什么?
- 答:k-means需要提前确定k值,对初始质心点敏感,并且对异常数据敏感。
-
问:DBSCAN适用于哪些数据类型?
- 答:DBSCAN适用于任意形状的簇,特别是非凸形状的数据,并能有效识别出噪声点。
通过本文,我们深入了解了聚类的基本概念和常见方法,为数据科学家在不同应用场景中选择合适的聚类算法提供了参考。