聚类中的相似矩阵和拉普拉斯矩阵

前言(可以略过)

        最近在看的是关于聚类的论文,之前对聚类的步骤和相关内容不太了解,为了读懂论文就去学习了一下,这里将自己的理解记录下来。学习的不全面,主要是为了看懂论文,后续如果有涉及到聚类的,会再补充的,题目就先这样写喽。


聚类分析

        聚类分析(Clustering)是无监督学习中的一种重要技术,它将数据集中的对象(或数据点)根据某些相似性度量,自动地分成多个组或类别。每个组中的对象彼此相似度高,而不同组之间的对象相似度较低

常用的相似度度量方法包括:

  • 欧氏距离(Euclidean Distance):适用于数值型数据,度量两个点在多维空间中的距离。
  • 曼哈顿距离(Manhattan Distance):度量点之间的城市街区距离,适用于不同特征之间差异较大的情况。
  • 余弦相似度(Cosine Similarity):度量两个向量之间的角度,常用于文本数据中,特别是计算文档或单词之间的相似度。
  • 皮尔逊相关系数(Pearson Correlation):度量两个变量之间的线性相关性。

聚类方法

基于算法的实现原理数据处理的逻辑分类

        常见的聚类算法(基于算法的实现原理数据处理的逻辑)可以分为几类:基于划分的聚类、基于层次的聚类、基于密度的聚类和基于网格的聚类。每种方法有不同的优缺点,适用于不同类型的数据。

基于划分的聚类(Partition-based Clustering)

  • 这类方法将数据集划分为若干个互不重叠的子集(簇),每个子集代表一个簇。

  • 典型算法:K-means、K-medoids(PAM)。

基于层次的聚类(Hierarchical Clustering)

  • 这类方法通过构建数据的层次结构来进行聚类,可以是自底向上的聚合(凝聚层次聚类)或自顶向下的分裂(分裂层次聚类)。

  • 典型算法:AGNES(凝聚层次聚类)、DIANA(分裂层次聚类)。

基于密度的聚类(Density-based Clustering)

  • 这类方法通过识别数据空间中密度较高的区域来形成簇,能够发现任意形状的簇,并且对噪声数据具有较强的鲁棒性。

  • 典型算法:DBSCAN、OPTICS。

基于网格的聚类(Grid-based Clustering)

  • 这类方法将数据空间划分为有限个网格单元,然后在网格单元上进行聚类操作。

  • 典型算法:STING、CLIQUE。

基于数据结构对聚类算法进行分类

基于向量数据的聚类

  • 描述:数据以向量的形式表示,每个数据点是一个特征向量(例如,数值型数据、多维数据)。

  • 特点:适用于传统的数值型数据集,特征是固定的维度。

  • 典型算法

    • K-means

    • DBSCAN

    • 层次聚类(AGNES、DIANA)

    • 高斯混合模型(GMM)

基于图数据的聚类(图聚类)

  • 描述:数据以图的形式表示,节点代表数据点,边代表数据点之间的关系或相似性。

  • 特点:适用于图结构数据(如社交网络、生物网络、推荐系统等)。

  • 典型算法

    • 谱聚类(Spectral Clustering)

    • 社区发现算法(如Louvain、Girvan-Newman)

    • 标签传播算法(Label Propagation)

 基于流形数据的聚类

  • 描述:数据分布在高维空间中的低维流形上,流形是一种局部类似于欧几里得空间的结构。

  • 特点:适用于非线性结构数据,能够捕捉数据的局部几何特性。

  • 典型算法

    • 谱聚类(可以看作是基于流形的聚类方法)

    • 拉普拉斯特征映射(Laplacian Eigenmaps)

    • 局部线性嵌入(LLE)

基于时间序列数据的聚类

  • 描述:数据是时间相关的序列,每个数据点是一个时间序列(如股票价格、传感器数据)。

  • 特点:需要考虑时间维度上的相似性和动态变化。

  • 典型算法

    • 动态时间规整(DTW)结合K-means

    • 时间序列K-means

    • 基于形状的聚类(Shape-based Clustering)

基于文本数据的聚类

  • 描述:数据是文本形式,通常需要将文本转换为向量表示(如词袋模型、TF-IDF、词嵌入)。

  • 特点:需要考虑文本的语义和结构。

  • 典型算法

    • 主题模型(如LDA)

    • 基于词向量的聚类(如Word2Vec + K-means)

    • 层次文本聚类

基于图像数据的聚类

  • 描述:数据是图像形式,通常需要提取图像特征(如颜色直方图、纹理特征、深度学习特征)。

  • 特点:需要考虑图像的视觉特性。

  • 典型算法

    • 基于深度学习的聚类(如自编码器 + K-means)

    • 基于颜色或纹理的聚类

基于混合类型数据的聚类

  • 描述:数据包含多种类型(如数值型、类别型、文本型等),需要处理异构数据。

  • 特点:需要设计能够处理多种数据类型的聚类算法。

  • 典型算法

    • 基于核方法的聚类

    • 基于多视图学习的聚类


聚类实现

        所以聚类的目标是将数据点划分为若干组(称为“簇”),使得同一组内的数据点相似,而不同组之间的数据点不相似。为了实现这一目标,我们需要:

1.定义数据点之间的相似性

2.基于相似性构建数据点的图结构

3.通过分析图结构来划分数据点

        在定义数据点相似性时,会用到一些常见的相似性度量,比如欧氏距离的负指数:S_{ij}=e^{-\frac{\left \| x_i-x_i \right \|^2}{2\sigma ^2}},相似性矩阵 S 是一个 n×n的矩阵,其中 Sij表示数据点 xi 和 xj 之间的相似性(当然这个相似性度量还有很多,也可以自己创新)。根据定义的相似性度量,计算所有数据点之间的相似性,就构建出了相似矩阵 S。相似矩阵 S 反映了数据点之间的局部关系,相似性越高的点越可能属于同一个簇。

        之后就要基于相似矩阵S构建拉普拉斯矩阵,拉普拉斯矩阵L_s描述了图的全局结构,特别是连通性。拉普拉斯矩阵的秩与图的连通分量数量直接相关。对拉普拉斯矩阵L进行特征分解,得到特征向量,选择前k个最小的特征值对应的特征向量,将数据映射到一个低维空间,随后对特征向量进行聚类(如使用K-means算法),得到最终的聚类结果。

L_s=D_s-S,

其中: D_s 是度矩阵,D_{ii}=\sum _jS_{ij}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值