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
- 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)
- run spectral clustering on graph
mem0<-igraph::membership(rSpectral::spectral_igraph_communities(karate))
- plot the graph with membership colors
palette <- rainbow(max(as.numeric(mem0))) plot(karate,vertex.color=palette[mem0],layout=l)
- run spectral clustering on graph, fixing neighbouring nodes found in same community
mem1<-igraph::membership( rSpectral::spectral_igraph_communities(karate, fix_neig=1))
- and plot again
palette <- rainbow(max(as.numeric(mem1))) plot(karate,vertex.color=palette[mem1],layout=l)
- run spectral clustering - fixing neighbouring nodes, Cnmin=5
mem1.5<-igraph::membership( rSpectral::spectral_igraph_communities(karate, fix_neig=1,Cn_min=5))
- 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
.