0

我正在寻找一种对二维二进制矩阵进行排序的方法,以便我们可以直观地识别数据中的“社区”。我的数据集基于组成员身份(即人员列表和他们所属的组)。例如:

   G1 G2 G3 G4
P1 1 1  
P2 1 1  
P3 1 1
P4 1 1

我正在寻找一种排序算法,它将给我这个:

   G1 G3 G2 G4
P1 1 1     
P2 1 1    
P3 1 1
P4 1 1

另一个“排序”数据的例子可以在这里找到:http: //mbostock.github.com/protovis/ex/matrix.html 在这个例子中,创建者引用了一个用于排序的“社区检测算法”。我的数据不同,因为维度之间没有成员关系(即第一个维度(人)是第二个维度(组)的成员。

我找到了一篇详细讨论这个问题的论文:http ://ricerca.mat.uniroma3.it/users/colanton/docs/visual.pdf (警告:PDF)

所以总而言之,我正在获取会员数据,试图在数据中找到“社区”,并以视觉方式表示。

我在这里找到了可能有帮助的类似讨论: 对二进制二维矩阵进行排序? 图中是否有用于社区检测的算法的实现?

4

1 回答 1

-1

到目前为止我见过的最好的解决方案是:http: //matthewlincoln.net/2014/12/20/adjacency-matrix-plots-with-r-and-ggplot2.html

总结一下方法:

一个很好的选择是可视化编码网络关系数据的邻接矩阵,例如,单元 AB 描述连接节点 A 到节点 B 的边。Mike Bostock 使用 Jacques Bretin 的 Les Misérables 共现网络数据集在 D3 中实现了这一点. 使用 ggplot2 生成邻接矩阵可视化也相当容易,但它确实需要你咬紧牙关,最后弄清楚如何使用有序因子。

它可以绘制如下所示的矩阵图: 在此处输入图像描述

并将其排序为: 在此处输入图像描述

于 2015-07-14T21:55:24.580 回答