cartographie avec igraph sous r (partie 2)

11
Mars 2012 Pascal Eusebio – PSAR AT - Utilisation d’igraph Popularité, modularité et communauté

Upload: cornec

Post on 30-Jun-2015

3.308 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Cartographie avec igraph sous R (Partie 2)

Mars 2012

Pascal Eusebio – PSAR AT -

Utilisation d’igraphPopularité, modularité et communauté

Page 2: Cartographie avec igraph sous R (Partie 2)

Avril 2012

Plan

Problématique et définition

Théorie des graphes: package igraph

1. Partitionnement de graphe : ex. les communautés

2. Analyse des réseaux : ex. la popularité

Page 3: Cartographie avec igraph sous R (Partie 2)

Avril 2012

Les flux domicile-travail, un graphe à analyser.

Page 4: Cartographie avec igraph sous R (Partie 2)

Avril 2012

Problématique

A partir d’une matrice de flux, quelles sont les relations préférentielles?

Qui est pôle d’échange ?

Pour y répondre, nous utiliserons la théorie des graphes avec la librairie igraph.

Page 5: Cartographie avec igraph sous R (Partie 2)

Avril 2012

C’est:

la somme des flux internes d’une communauté -la somme des flux reliant les mêmes communes dans un graph plein. Le poids de chaque flux est repondéré pour conserver le degré des nœuds.

Définition: modularité

Page 6: Cartographie avec igraph sous R (Partie 2)

Avril 2012

Définition: La modularité

La modularité est une mesure pour la qualité d'un partitionnement des nœuds d'un graph, en communautés.

L’objectif des partitionnements est de maximiser (sous contrainte ou non) la modularité.

Page 7: Cartographie avec igraph sous R (Partie 2)

Avril 2012

Le partitionnement de graphe

L’approche divisive, on part d’une communauté, les divisions successives doivent améliorer la modularité.

Page 8: Cartographie avec igraph sous R (Partie 2)

Avril 2012

Le partitionnement de graphe

Module de igraph:leading.eigenvector.community

Code:library(igraph)library(foreign)base = "C:/Flux_dt_au.dbf"base_flux=read.dbf(base,as.is=T)

g=graph.adjacency(matriceflux,mode="undirected",diag=F,weighted=T,add.rownames="name")

lec <- leading.eigenvector.community(g)communautes <- data.frame(V(g)$name, lec$membership)modularite<- modularity(g, lec$membership)

Page 9: Cartographie avec igraph sous R (Partie 2)

Avril 2012

Le partitionnement de graphe

A l’inverse, l’approche gloutonne fusionne de manière récursive des communautés atomiques à la première étape.

Page 10: Cartographie avec igraph sous R (Partie 2)

Avril 2012

Le partitionnement de graphe

Module de igraph: fastgreedy.community

Code:g=graph.adjacency(matriceflux,mode="undirected",diag=F,weighted=T)fgc<-fastgreedy.community(g,merges=T,modularity=T,weights=E(g)$weight)communautes<-community.to.membership(g,fgc$merges, steps=20)modularite<-modularity(g, communautes$membership)

Page 11: Cartographie avec igraph sous R (Partie 2)

Avril 2012

Analyse des réseaux: la popularité

Quel indicateur permet de définir le territoire moteur des échanges d’une zone ?

La réponse facebook est : « Le plus populaire est celui qui a des amis populaires ».

Il existe plusieurs méthodes fondées sur l’étude du premier vecteur propre de la matrice de flux dont le page rank.

g=graph.adjacency(matriceflux,mode="directed",weighted=T,diag=F,add.rownames="name")pr<-data.frame(V(g)$name,page.rank(g)$vector)