Paul
Paul

Reputation: 31

Generating clusters from adjacency matrix / edge list in R

I am trying to find potential clusters or groups of nodes (forum messages, in this case).

In the current data, each node (message) has been tentatively grouped together with n other messages, and that group given a name. So, we know that msg ID 1 has been seen together with msg ID 3, and 7, say.

I am currently using that information to construct an edge list (if they have been grouped together, an edge exists), and then using walktrap community to produce a dendrogram.

Are there any other ways to tease out groups or clusters, given the edge list? (I am using R, but pointers to anything would be helpful).

Thanks for your time!

Upvotes: 3

Views: 4168

Answers (3)

Fred Foo
Fred Foo

Reputation: 363797

I don't know much about R, but...

This overview paper discusses graph clustering in great detail. You might also be interested in the Markov clustering (MCL) algorithm.

Upvotes: 3

Has QUIT--Anony-Mousse
Has QUIT--Anony-Mousse

Reputation: 77485

A common catch-all approach seems to be to build an adjacency matrix for the data, then use matrix multiplications to build a kind of transitive closure, then e.g. compute the inverse matrix to identify a "reason", or PCA/ICA to identify groups.

Upvotes: 1

micans
micans

Reputation: 1116

For network analysis in R I recommend using igraph. Are you already using that? It allows the construction of dendrograms using different clustering methods. Then use community.to.membership() to cut the dendrogram. The MCL algorithm is not (yet) available from igraph, but it can be run from the command line pretty easily.

Upvotes: 1

Related Questions