一、多视角
  多视角聚类是伴随着信息时代发展过程中人们获取信息的途径日益增加,而逐渐出现的新聚类研究方向。通过多种途径获得的数据其实是对同件事物的不同描述,如电影的图片以及音频都是对这个电影的描述,反映了电影不同角度的信息,充分提取不同视角数据中的互补信息是多视角聚类研究的重点。
  比如对于同一件新闻新华社、人民日报、和美国华盛顿日报等的表述都是不一样的,那么从这多个方向去解释分析数据能够得到很好的结果。
  当然,需要注意的是,并不是所有的不同方法都可以称之为多视角,有的仅可以称之为多方法,这个关键在于对于当前数据视角如何去定义,一般要考虑是否已可以被隐表达等问题。但其实即使是多方法也通常可以使用多视角谱聚类来达到综合优势的目的。
二、谱聚类
  谱聚类是从图论中的谱图理论基础上演化而来的算法,实质是聚类问题转化为图最优划分的问题。我们将每一个样本都视为是图中的一个点,通过样本数据的相似度得到样本间的连接权重,相似的样本之间连接权重高,不相似的样本间连接权重低,由此得到一个由聚类数据转化为无向连接图的连接矩阵。此时已实现了将聚类问题转化为图最优划分的问题这一部分,后续就是谱聚类研究中经典的图最优划分算法部分。而且由于从连接矩阵变换得到的正则化拉普拉斯矩阵,具有对称性、半正定性等非常适用于算法模型推导的性质,所以我们会通过得到拉普拉斯矩阵的方法来将聚类问题转化到图划分问题。
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:MVsort(:,i) = V(:,s(i));end
end

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

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

  1. 归一化谱聚类NCUT(matlab实现)

    归一化谱聚类NCUT步骤: 根据定义的相似性度量方法,从样本数据生成邻接矩阵W(例如使用皮尔逊相关系数衡量俩时间信号的相似性) 由邻接矩阵W得到度矩阵D,D的对角线元素为W的行和(或者列和) 计算拉普 ...

  2. 聚类算法(六)——谱聚类 (含代码)

    聚类算法相关: 聚类算法(一)--DBSCAN 聚类算法(二)-- 优缺点对比 聚类算法(三)-- 评测方法1 聚类算法(三)-- 评测方法2 聚类算法(三)-- 评测方法3(代码) 聚类算法(四)- ...

  3. matlab实现谱聚类法图像分割代码,一种基于谱聚类的图像分割方法与系统与流程...

    本发明是一种基于谱聚类的图像分割方法与系统,涉及聚类.机器学习和人工智能领域.特别涉及通过相关性将已经学习到的知识运用到图像分割中,并在此基础上构造性地改造谱聚类方法,从而达到快速精确地分割彩色图像的 ...

  4. 谱聚类算法及其代码(Spectral Clustering)

    简介 文章将介绍谱聚类(spectral clustering)的基本算法,以及在matlab下的代码实现.介绍内容将包括: 从图分割角度直观理解谱聚类 谱聚类算法步骤 数据以及实现代码 本文将不会涉 ...

  5. matlab ncut谱聚类,NCUT 归一化分割、谱聚类之代码调试问题

    1 相比于c++,matlab的效率较低,为了解决这个问题,大家在matlab中调用c++,也就是说matlab调用的一些函数,本身是由c++编写完成的,执行的时候也是在c++编译器中执行.实现这个功 ...

  6. Ncut matlab 代码bug 修复

    先说平台: win7 x64,matlab 2012a x64,亲测运行. ncut 是个图像切割方法,以后再回顾具体算法吧,网上很多流程的是Jianbo Shi 这位2000年写的,名字应该是:Da ...

  7. kmeans聚类算法matlab代码,K-Means算法实现(Matlab)

    K-Means算法具体内容可以参考我博客的相关文章,这里只使用Matlab对其进行实现,其他内容不多赘述 K-Means算法 1.生成随机样本点 首先利用 mvnrnd 函数生成3组满足高斯分布的数据 ...

  8. K-mean(多维度)聚类算法(matlab代码)

    申明: 仅个人小记. Email: officeforcsdn@163.com 目录 效果演示 二维度 三维度 k-mean 算法思想简要说明 代码分析 二维度k-mean代码 三维度k-mean代码 ...

  9. k均值聚类图像分割matlab代码_用K均值聚类法为人类拍摄的首张黑洞照片进行分割...

    众所周知,人类最近拍摄了首张黑洞照片.网友们纷纷表示,这明明就是一个甜甜圈嘛!以前以为黑洞是这个世界上最最高冷的存在,而此刻突然现出真身,形象却是如此的人畜无害!不但如此,还勾起了网友的食欲!简直是罪 ...

最新文章

  1. 一个阿里P7的自白:一念之差,我差点转了产品
  2. 用Intersects方式联接地理数据,如何进行地理数据分析
  3. CVPR 2018 MCCT:《Multi-Cue Correlation Filters for Roubust Visual Tracking》论文笔记
  4. 【原创】分布式之redis复习精讲
  5. 得到指定进程所有窗口。显示 影藏 置顶。
  6. ubuntu下IP、DNS配置
  7. c#编写高程拟合程序
  8. photoshop 新建文档尺寸预设如何导出保存
  9. CRT软件光标不闪烁
  10. 【STM32】【HAL库】【实用制作】数控收音机(软件设计)
  11. 计算机存储溢出 是什么意思,数据溢出是什么意思
  12. 做项目经理的自我总结(一)
  13. 深入剖析Netty之定时任务实现
  14. 《科技创业启示录》一第3章 拉尔斯·欣里希斯
  15. 百度文库----免费复制
  16. 守护软件供应链安全:国产软件BinSearch的最佳实践
  17. 电商黑马,集体倒在2019!
  18. socket.io简单说明及在线抽奖demo
  19. 计算机在化学中的应用评述文献,计算机模拟在化学中的应用
  20. selenium-webdriver(python) -- 鼠标事件

热门文章

  1. 名词介绍 CAPEX OPEX
  2. SCANDY让你的手机变成扫描仪
  3. JS中如何阻止事件的传播
  4. mfc 多边形裁剪算法
  5. 让QQ群聊天记录自动保存到群空间中(转)
  6. Unity编辑器拓展之二十四:基于Unity Node Editor、ScriptableObject的配置化新手引导系统
  7. 微果I7随身便携投影仪好不好用?和哈趣H1相比哪个更值得入手?
  8. 电路设计学习一:DAC/ADC原理
  9. Python作业day2购物车
  10. React Native性能优化总结