谱聚类算法(Spectral Clustering)优化与扩展

谱聚类(Spectral Clustering, SC)在前面的博文中已经详述,是一种基于图论的聚类方法,简单形象且理论基础充分,在社交网络中广泛应用。本文将讲述进一步扩展其应用场景:首先是User-Item协同聚类,即spectral coclustering,之后再详述谱聚类的进一步优化。

1 Spectral Coclustering

1.1 协同聚类(Coclustering)

在数据分析中,聚类是最常见的一种方法,对于一般的聚类算法(kmeans, spectral clustering, gmm等等),聚类结果都类似图1所示,能挖掘出数据之间的类簇规律。

图1 聚类结果图

即使对于常见的数据User-Item评分矩阵(常见于各社交平台的数据之中,例如音乐网站的用户-歌曲评分矩阵,新闻网站的用户-新闻评分矩阵,电影网站的用户-电影评分矩阵等等),如表1所示。在聚类分析中,也常常将数据计算成User-User的相似度关系或Item-Item的相似度关系,计算方法诸如应用Jaccard距离,将User或Item分别当成Item或User的特征,再在此基础上计算欧氏距离、cos距离等等。

表1 User-Item评分矩阵

但是如果能聚类成如图2中的coclustering关系,将User和Item同时聚类,将使得数据结果更具意义,即在音乐网站中的用户和歌曲coclustering结果表明,某些用户大都喜欢某类歌曲,同时这类歌曲也大都只被这群用户喜欢着。这样,不管是用于何种场景(例如歌曲推荐),都将带来极大的益处。

图2 coclustering图

1.2 Spectral Coclustering

对于User-Item评分矩阵,这是一个典型的二部图(Bipartite Grap),Item-User矩阵A,假设A为N*M,即N个item和M个user,可展开成:

其中E为(M+N)*(M+N)的方阵,且对称。

对于A的二部图,只存在Item与User之间的邻接边,在Item(User)之间不存在邻接边。再用谱聚类原理——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远。这样的聚类结果将Cut尽量少的边,分割出User和Item的类,如果类记Ci(U,I)为第i个由特定的User和Item组成的类,由谱聚类原理,Cut掉的Ci边为中的User或Item与其它类Cj(j≠i)的边,且其满足某种最优Cut方法,简单地说,Cut掉的User到其它类Cj(j≠i)的Item的边,可理解为这些User与其它Item相似关系较小;同样Cut掉的Item到其它类Cj(j≠i)的User的边,可理解为这些Item与其它User相似关系较小。这正好满足coclusering的定义。

在谱聚类的基础上,再实现Spectral Coclustering,十分简单, 将E直接当成谱聚类的邻接矩阵即可,至于求Laplacian矩阵、求特征值、计算Kmeans,完成与谱聚类相同。

PS:更多详情,请参见参考文献1。

2 谱聚类的半监督学习

假设有大量新闻需要聚类,但对于其中的部分新闻,编辑已经人工分类好了,例如(Ni1,Ni2, …, Nim),为分类好的第i类,那么对于人工分类好的数据,就相当于聚类中的先验知识(或正则)。

在聚类时,可相应在邻接矩阵E中增加类彼此间邻接边,并使得其邻接权重较大,这样生成的邻接矩阵为E’。这样,再对此邻接矩阵E’做谱聚类,聚类结果将在一定程度上维持人工分类的结果,并达到聚类的目的。

PS:更多详情,请参见参考文献2,不过谱聚类的半监督学习,都有点扯。

参考文献:

1 Inderjit S. Dhillon. Co-clustering documents and words using Bipartite Spectral Graph Partitioning;

2 W Chen. Spectral clustering: A semi-supervised approach;

3 Wen-Yen Chen, Yangqiu Song, Hongjie Bai, Chih-Jen Lin, Edward Y. Chang. Parallel Spectral Clustering in Distributed Systems.

----

谱聚类算法(Spectral Clustering)优化与扩展相关推荐

  1. 谱聚类算法(Spectral Clustering)

    谱聚类算法(Spectral Clustering) 谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法--将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似 ...

  2. 谱聚类(Spectral Clustering)原理及Python实现

    谱聚类原理及Python实现 图模型   无向带权图模型 G=<V,E> G =< V , E > G=,每一条边上的权重 wij w i j w_{ij}为两个顶点的相似度, ...

  3. 谱聚类(Spectral Clustering)1——算法原理

    文章目录 简介 1. 准备工作 1.1 邻接矩阵 1.2 度矩阵 1.3 拉普拉斯矩阵 1.3.1 非归一化拉普拉斯矩阵 1.3.2 归一化拉普拉斯矩阵 1.4 相似图 1.4.1 ϵ\epsilon ...

  4. 谱聚类(spectral clustering)原理总结

    谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...

  5. 谱聚类(spectral clustering)及其实现详解

    Preface 开了很多题,手稿都是写好一直思考如何放到CSDN上来,一方面由于公司技术隐私,一方面由于面向对象不同,要大改,所以一直没贴出完整,希望日后可以把开的题都补充全. 先把大纲列出来: 一. ...

  6. 转:谱聚类(spectral clustering)及其实现详解

    转自:https://blog.csdn.net/yc_1993/article/details/52997074 2016年11月01日 16:19:52 阅读数:13352 Preface  开了 ...

  7. python谱聚类算法_谱聚类(spectral clustering)原理总结

    谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...

  8. 谱聚类(Spectral Clustering)算法介绍

    一. 前言 本来想写关于聚类系列算法的介绍,但是聚类系列的其它几个算法原理比较简单,网上有大量的教程可以查阅.这里主要是介绍一下谱聚类算法,做一个学习笔记,同时也希望对想要了解该算法的朋友有一个帮助. ...

  9. 介绍谱聚类(spectral clustering)

    文章目录 1.谱聚类概览 2.谱聚类构图 3.拉普拉斯矩阵 4.切图聚类 4.1RatioCut 4.2Ncut 5.总结流程 1.谱聚类概览 谱聚类演化于图论,后由于其表现出优秀的性能被广泛应用于聚 ...

最新文章

  1. ae的渲染引擎:cineware
  2. [Android] 修改ImageView的图片颜色
  3. [BZOJ3583]杰杰的女性朋友(矩阵快速幂)
  4. excel填充工作日
  5. html文件打开多出很多数字,【求助】页面上显示几个数字,打开html的时候希望能滚动起来...
  6. 基于 FFMPEG 的音频编解码(三):音频编码
  7. java 杭电3784继续xxx定律 栈的使用
  8. 测试驱动的面向对象软件开发(china-pub首发)
  9. CGO磁盘管理For流星无语
  10. jquery 分片上传php,jquery 大文件分片上传插件 fcup.js
  11. 梅科尔工作室-OpenEuler培训第二讲笔记
  12. 量化敏捷项目管理案例分享
  13. 中铁汇达保险经纪保单计算个人理解
  14. iftop---实时流量监控工具
  15. java GUI SWING
  16. 【佳学基因人工智能解码技术系列】在CENTOS环境下安装ANACOND
  17. 《商业区块链》作者评论:区块链行业标准的讨论必将是一场持久战
  18. 塞班s60v3手电筒sisx_s60第三版_塞班v3软件下载网站_塞班s60 v3论坛
  19. 平面设计师不断的提高设计水平的技巧是什么
  20. gitbook 插件 赞赏

热门文章

  1. 机器人差速驱动方式(Differential Drive)
  2. 修改framework后重新刷入手机
  3. 我眼中的Linux设备树(五 根节点)
  4. Java初学者不得不知的概念,JDK,JRE,JVM的区别?
  5. apt 卸载_你所不知道的apt-get
  6. 已经入门了C++,后面的路怎么走?
  7. 递归三:变态蛙跳台阶
  8. double,float,BigDecimal类型数值的操作
  9. Bootstrap基础一 CSS 概览
  10. 23种设计模式的索引