GitHub - cmclean5/rSpectral (original) (raw)

rSpectral

The goal of ‘rSpectral’ is to make Spectral Modularity graph clustering method available to most of R graph frameworks.

Installation

You can install the development version of rSpectral fromGitHub with:

install.packages("devtools")

devtools::install_github("cmclean5/rSpectral")

The stable version is available on CRAN:

install.packages("rSpectral")

Example

This is a basic example which shows you how to solve a common problem

  1. load the karate club graph and plot Faction membership:

library(rSpectral) library(igraph) #> #> Attaching package: 'igraph' #> The following objects are masked from 'package:stats': #> #> decompose, spectrum #> The following object is masked from 'package:base': #> #> union data(karate, package="igraphdata") l<-layout_nicely(karate) memT<-V(karate)$Faction palette <- rainbow(max(as.numeric(memT))) plot(karate,vertex.color=palette[memT],layout=l)

  1. run spectral clustering on graph

mem0<-igraph::membership(rSpectral::spectral_igraph_communities(karate))

  1. plot the graph with membership colors

palette <- rainbow(max(as.numeric(mem0))) plot(karate,vertex.color=palette[mem0],layout=l)

  1. run spectral clustering on graph, fixing neighbouring nodes found in same community

mem1<-igraph::membership( rSpectral::spectral_igraph_communities(karate, fix_neig=1))

  1. and plot again

palette <- rainbow(max(as.numeric(mem1))) plot(karate,vertex.color=palette[mem1],layout=l)

  1. run spectral clustering - fixing neighbouring nodes, Cnmin=5

mem1.5<-igraph::membership( rSpectral::spectral_igraph_communities(karate, fix_neig=1,Cn_min=5))

  1. and the last plot

palette <- rainbow(max(as.numeric(mem1.5))) plot(karate,vertex.color=palette[mem1.5],layout=l)

GraphNEL objects could be processed similarily, all other graph types could be converted either to igraph or to GraphNEL by packages such as Intergraph.