51 lines
1.6 KiB
R
51 lines
1.6 KiB
R
# Homework 3 for the University of Tulsa' s CS-7863 Network Theory Course
|
|
# Network Clustering
|
|
# Professor: Dr. McKinney, Spring 2022
|
|
# Noah Schrick - 1492657
|
|
|
|
# Imports
|
|
library(igraph)
|
|
library(igraphdata)
|
|
library(WGCNA)
|
|
|
|
data(karate)
|
|
data(yeast)
|
|
|
|
g1 <- karate
|
|
g1.netname <- "Karate"
|
|
g2 <- yeast
|
|
g2.netname <- "Yeast"
|
|
|
|
##################### Part 1: Laplace Spectral Clustering #####################
|
|
|
|
|
|
########################## Part 2: Newman Modularity ##########################
|
|
|
|
|
|
##################### Part 3: Recursive Newman Modularity #####################
|
|
# Using igraph
|
|
karate.modularity <- fastgreedy.community(karate,merges=TRUE, modularity=TRUE, membership=TRUE)
|
|
#memberships <-community.to.membership(karate, karate.modularity$merges,
|
|
# steps=which.max(fgreedy$modularity)-1)
|
|
karate.modularity$membership
|
|
karate.modularity$merges
|
|
membership.ids <- unique(karate.modularity$membership)
|
|
membership.ids
|
|
cat(paste('Number of detected communities =',length(membership.ids)))
|
|
cat("community sizes: ")
|
|
sapply(membership.ids,function(x) {sum(x==karate.modularity$membership)})
|
|
cat("modularity: ")
|
|
max(karate.modularity$modularity)
|
|
#karate.modularity$modularity
|
|
|
|
V(karate)$color[karate.modularity$membership==1] <- "green"
|
|
V(karate)$color[karate.modularity$membership==2] <- "red"
|
|
V(karate)$color[karate.modularity$membership==3] <- "blue"
|
|
|
|
plot(karate,vertex.size=10,vertex.label=V(karate)$label,vertex.color=V(karate)$color)
|
|
|
|
|
|
###################### Part 4: TOM and Dynamic Tree Cut ######################
|
|
|
|
|
|
################################ Part 5: UMAP ################################ |