[机器学习]多视角谱聚类(Ncut matlab代码)

一、多视角
  多视角聚类是伴随着信息时代发展过程中人们获取信息的途径日益增加,而逐渐出现的新聚类研究方向。通过多种途径获得的数据其实是对同件事物的不同描述,如电影的图片以及音频都是对这个电影的描述,反映了电影不同角度的信息,充分提取不同视角数据中的互补信息是多视角聚类研究的重点。
  比如对于同一件新闻新华社、人民日报、和美国华盛顿日报等的表述都是不一样的,那么从这多个方向去解释分析数据能够得到很好的结果。
  当然,需要注意的是,并不是所有的不同方法都可以称之为多视角,有的仅可以称之为多方法,这个关键在于对于当前数据视角如何去定义,一般要考虑是否已可以被隐表达等问题。但其实即使是多方法也通常可以使用多视角谱聚类来达到综合优势的目的。
二、谱聚类
  谱聚类是从图论中的谱图理论基础上演化而来的算法,实质是聚类问题转化为图最优划分的问题。我们将每一个样本都视为是图中的一个点,通过样本数据的相似度得到样本间的连接权重,相似的样本之间连接权重高,不相似的样本间连接权重低,由此得到一个由聚类数据转化为无向连接图的连接矩阵。此时已实现了将聚类问题转化为图最优划分的问题这一部分,后续就是谱聚类研究中经典的图最优划分算法部分。而且由于从连接矩阵变换得到的正则化拉普拉斯矩阵,具有对称性、半正定性等非常适用于算法模型推导的性质,所以我们会通过得到拉普拉斯矩阵的方法来将聚类问题转化到图划分问题。
1.得到图
(1)图矩阵
  因为2个样本之间的关系是相互的,所以图为无向图,比如六个数据的样本,可以转化的图为
无向图
 设样本数量为N,我们用W(N,N)大小的矩阵来表述每个样本和其他样本之间的关系,如上图,其关系矩阵w可以被表示为
邻接矩阵
  考虑度概念可以得到度矩阵D
度矩阵
  拉普拉斯矩阵L可以被视为是其二者的结合
拉普拉斯矩阵
 拉普拉斯矩阵的对称、半正定等性质,很适合用来求解聚类问题,可以用L来作为谱聚类的图矩阵使用。
(2)定义连接关系
  可以利用欧式距离等来表示样本之间的关系,那么w的得到方式可以为
  --阈值:通过设定阈值e,距离超过e的定义为连接,其他为不连接。
  --K近邻:使用K近邻来刻画w。K近邻是比较常用的方法
  --全连接:设点和点之间都是相互连接的,由边的权重来表示其关系,
  即上w矩阵不是非0即1的数值,而是每一个位置都是由一个权重来刻画其关系亲密程度。可以用距离来表征这个权重,距离远权重小。由此得到的D,L也会相应的不同。这样的刻画模式为全连接法
多视角谱聚类流程
2.得到图
  得到最优邻域拉普拉斯矩阵,我们即获取到了图中点与点之间的关系,如何从图中反映的每个样本之间的关系,来得到数据的聚类划分结果是谱聚类的研究方向。图论中的最优划分准则就是让划分得到的每个子图之间相似度最小,其各自内部的相似度最大。基于不同的图划分准则,有许多的划分算法,如Mini cut、Ratio Cut、Normarized cut等。
  Minimum cut,最小割集准则是Wu等提出的,其最小化的代价函数为其分割的子图的连接矩阵之和,这样的最小化目标可以降低得到每个子图之间的相似度,取得不错的图划分结果。但这样的准则也使得其划分的子图,更加偏向于小区域化。
  Average cut,平均割集准则是Sarkar等提出的,利用无向连接图的边界损失和划分之后的每个子图的相关性之间的比值来得到的,这样的划分通常能产生更好的子图划分结果。
  Normalized cut(Ncut),规范割集准则是Shi等提出的,在考虑每个数据之间相似性的同时也考虑每个类之间数据的差异性,子图为A、B,二者的交集为V,. )是t这两个样本的连接权重,则其最小化的目标可以被表示为:
在这里插入图片描述在这里插入图片描述
  规范割集准则即考虑到类内相似,也考虑到类间差异,这使得我们将Ncut和上述另外两个准则进行同一个数据的图划分时,Ncut将会得到更好的子图划分结果。基于此,在许多模型中都会使用Ncut来作为图划分的这一部分。
  Ncut Matlab代码

function clu=Ncut(L,c) 
    % L拉普拉斯矩阵
    % c簇数量
    %1.构建标准化后的拉普拉斯矩阵
    L = (L + L')/2;%对角化
    D = diag(diag(L));
    L = D^-0.5*L*D^-0.5;   %标准化
    %2.得到特征向量
    [V,d] = eig(L);
    %3.得到最小的n个特征值,对应的n×k1维的特征矩阵V  
    [V,~]=eigsorts(V,d);
    V=V(:,1:c);
    %4.按行标准化
    temp=1./(sum(V.*V,2).^0.5);
    temp=temp*ones(1,c);
    V=V.*temp;
    %5.用kmeans进行聚类,%得到簇划分C(c1,c2,...ck2).
    clu = kmeans(V,c,'emptyaction','singleton','replicates',20);
end

%拉普拉斯矩阵的特征向量V与特征值D 从小到大排列
function [Vsort,Dsort] = eigsorts(V,D)  
    d = diag(D);
    %d = abs(d);
    [Ds,s] = sort(d);
    Dsort = diag(Ds);
    M = length(D);
    Vsort = zeros(M,M);
    for i = 1:M
        Vsort(:,i) = V(:,s(i));
    end
end

三、多视角谱聚类
  而多视角谱聚类大概与传统谱聚类内容不同的是,需要从多个不同视角的数据中来得到一个统一的图矩阵(相似矩阵或者拉普拉斯矩阵),将在后续文章中讲述一种利用高阶信息的最优邻域拉普拉斯谱聚类算法算法。大概算法如下图,图中数据可以为多种数据。
多视角算法

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值