2012-02-10 20 views
0

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

 
    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(warning :PDF)

因此,在总结我以会员数据,试图找到数据中的“社区”,并表示在视觉上

我发现类似的讨论,可能是这里的一些帮助: Sorting a binary 2D matrix? Are there implementations of algorithms for community detection in graphs?

+0

你是如何处理的噪音? – ElKamina 2012-02-10 17:33:46

+0

这应该由排序算法处理。看看protovis的例子。 – RussellZ 2012-02-12 19:46:48

+1

看到此[线程](http://stackoverflow.com/questions/29085940/group-variables-by-clusters-on-heatmap-in-r/29095077#29095077) – Antoine 2015-07-14 16:00:02

回答

-1

迄今为止我见过的最好的解决办法是在这里: http://matthewlincoln.net/2014/12/20/adjacency-matrix-plots-with-r-and-ggplot2.html

总结方法:

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

它能够把一个矩阵图,看起来像这样: enter image description here

,并排序,以这样的: enter image description here

+1

感谢您的反馈,但删除帖子似乎有点苛刻。我已经通过链接更多的信息更新了答案。 – RussellZ 2015-07-15 23:01:48