Cartographie avec igraph sous R (Partie 2)

Post on 30-Jun-2015

3.308 views 4 download

Transcript of Cartographie avec igraph sous R (Partie 2)

Mars 2012

Pascal Eusebio – PSAR AT -

Utilisation d’igraphPopularité, modularité et communauté

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é

Avril 2012

Les flux domicile-travail, un graphe à analyser.

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.

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é

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é.

Avril 2012

Le partitionnement de graphe

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

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)

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.

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)

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)