谱聚类算法(Spectral Clustering)优化与扩展
谱聚类算法(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)优化与扩展相关推荐
- 谱聚类算法(Spectral Clustering)
谱聚类算法(Spectral Clustering) 谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法--将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似 ...
- 谱聚类(Spectral Clustering)原理及Python实现
谱聚类原理及Python实现 图模型 无向带权图模型 G=<V,E> G =< V , E > G=,每一条边上的权重 wij w i j w_{ij}为两个顶点的相似度, ...
- 谱聚类(Spectral Clustering)1——算法原理
文章目录 简介 1. 准备工作 1.1 邻接矩阵 1.2 度矩阵 1.3 拉普拉斯矩阵 1.3.1 非归一化拉普拉斯矩阵 1.3.2 归一化拉普拉斯矩阵 1.4 相似图 1.4.1 ϵ\epsilon ...
- 谱聚类(spectral clustering)原理总结
谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...
- 谱聚类(spectral clustering)及其实现详解
Preface 开了很多题,手稿都是写好一直思考如何放到CSDN上来,一方面由于公司技术隐私,一方面由于面向对象不同,要大改,所以一直没贴出完整,希望日后可以把开的题都补充全. 先把大纲列出来: 一. ...
- 转:谱聚类(spectral clustering)及其实现详解
转自:https://blog.csdn.net/yc_1993/article/details/52997074 2016年11月01日 16:19:52 阅读数:13352 Preface 开了 ...
- python谱聚类算法_谱聚类(spectral clustering)原理总结
谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...
- 谱聚类(Spectral Clustering)算法介绍
一. 前言 本来想写关于聚类系列算法的介绍,但是聚类系列的其它几个算法原理比较简单,网上有大量的教程可以查阅.这里主要是介绍一下谱聚类算法,做一个学习笔记,同时也希望对想要了解该算法的朋友有一个帮助. ...
- 介绍谱聚类(spectral clustering)
文章目录 1.谱聚类概览 2.谱聚类构图 3.拉普拉斯矩阵 4.切图聚类 4.1RatioCut 4.2Ncut 5.总结流程 1.谱聚类概览 谱聚类演化于图论,后由于其表现出优秀的性能被广泛应用于聚 ...
最新文章
- ae的渲染引擎:cineware
- [Android] 修改ImageView的图片颜色
- [BZOJ3583]杰杰的女性朋友(矩阵快速幂)
- excel填充工作日
- html文件打开多出很多数字,【求助】页面上显示几个数字,打开html的时候希望能滚动起来...
- 基于 FFMPEG 的音频编解码(三):音频编码
- java 杭电3784继续xxx定律 栈的使用
- 测试驱动的面向对象软件开发(china-pub首发)
- CGO磁盘管理For流星无语
- jquery 分片上传php,jquery 大文件分片上传插件 fcup.js
- 梅科尔工作室-OpenEuler培训第二讲笔记
- 量化敏捷项目管理案例分享
- 中铁汇达保险经纪保单计算个人理解
- iftop---实时流量监控工具
- java GUI SWING
- 【佳学基因人工智能解码技术系列】在CENTOS环境下安装ANACOND
- 《商业区块链》作者评论:区块链行业标准的讨论必将是一场持久战
- 塞班s60v3手电筒sisx_s60第三版_塞班v3软件下载网站_塞班s60 v3论坛
- 平面设计师不断的提高设计水平的技巧是什么
- gitbook 插件 赞赏