sábado, 11 de julio de 2015

Un ejemplo de PageRank

Si se tienen datos de interacciones de usuarios (o interacciones entre paginas, cuentas bancarias, redes sociales, etc.) puede calcularse la Importancia o relevancia de cada usuario usando el algoritmo PageRank.


Conceptualmente seria así:


























#---------------------------------------------------------------
# carga libreria y datos de dropbox 
library(igraph)
datos <- read.csv("https://www.dropbox.com/s/blugxmyhty6lkeq/Twitter_network_R.csv?dl=1")
 
#---------------------------------------------------------------
# crea objeto de grafo con solo 50 observaciones de ejemplo
grafo <- graph.data.frame(datos[1:50,])
 
#---------------------------------------------------------------
# grafica objeto de grafo como ejemplo
plot(grafo,layout=layout.fruchterman.reingold, vertex.size=8,
     vertex.label.dist=0.4, vertex.color="red", edge.arrow.size=0.5)
 
#---------------------------------------------------------------
# calcula page rank
pr.tmp <- data.frame(pr.value= page.rank(grafo)$vector)
pr     <- data.frame(pr.desc=row.names(pr.tmp), pr.val = pr.tmp[,1])
head(pr[order(pr$pr.val,decreasing = T),]) #imprime los 6 usuarios mas relevantes
 
#---------------------------------------------------------------
# grafica interacciones usando valor page.rank para tamaños en grafico
V(grafo)$label.cex =  0.6 + pr$pr.val*3 # tamaño de letra segun page.rank
plot(grafo,layout=layout.fruchterman.reingold, vertex.size=pr$pr.val*100,
     vertex.label.dist=0.4, vertex.color="red", edge.arrow.size=0.3)

La ppt con imagen se descarga AQUI
Una ppt con conceptos básicos de grafos se puede descargar AQUI


Referencia:
http://is-r.tumblr.com/post/38240018815/making-prettier-network-graphs-with-sna-and-igraph



No hay comentarios:

Publicar un comentario