chapitre 7 analyse de rÉseaux - campus de metz · • passage à l’échelle / big data :...
TRANSCRIPT
Mineure « Data Science » Frédéric Pennerath
ANALYSE DE RÉSEAUX
Chapitre 7
NetworkX
Mineure « Data Science » Frédéric Pennerath
L’analyse de réseaux
Réseau : graphe entité-relation de grande taille, orienté ou non
Théorie des réseaux : discipline mathématique / informatique / sociologique
Champ d’application très vaste :
• Réseaux sociaux :– Au départ études sociologiques
– Succès des outils de « réseautage social » (FaceBook, LinkedIn, Google+ etc)
– Réseaux de diffusion de l’information (Twitter)
• Réseaux de communication (Internet)
• Réseaux de documents (Web, Wikipedia, réseaux bibliographiques)
• Réseaux biologiques (régulation gène protéine / interaction protéine – protéine / métabolique)
Principales caractérisations :
• Orienté (Twitter) ou non orienté (Facebook)
• Homogène (Facebook) ou hétérogène (réseaux bibliographiques auteurs / articles).
Mineure « Data Science » Frédéric Pennerath
Principaux problèmes
Dépendent de l’application :
• Analyse de la structure globale du réseau
– Analyse spectrale (valeurs propres) ou topologique (diamètre, etc) des réseaux
– Modèles génératifs (modèle aléatoire de Erdös-Rényi) et simulateurs de croissance des réseaux (Web, réseaux sociaux, etc)
– Modèle et simulation de la diffusion d’informations au sein des réseaux (rumeurs dans les réseaux sociaux, lien avec l’épidémiologie)
• Mesure d’importance / de centralité des sommets dans le réseau– Web : pagerank
– Réseaux sociaux : mesure de popularité / d’influence
– Bibliométrie : h-index, etc
• Classification de sommets et des liens– Principe d’homophilie (« qui se ressemble s’assemble ») : forme de régularisation par le voisinage
– Exemples : catégorisation des utilisateurs / prédiction de liens dans les réseaux sociaux, détection de nœuds sur le Web
• Clustering de sommets :– Réseaux sociaux : détection de communauté
– Réseaux biologiques : ensemble de protéines interdépendantes
Mineure « Data Science » Frédéric Pennerath
Outils pour l’analyse de réseaux
• NetworkX / Prototypage Python
– Algorithmes classiques des graphes (flots max, plus courts chemins, etc)
– Algorithmes de visualisation.
– Modèles génératifs de graphes aléatoires (Erdös-Rényi, etc)
– Algorithmes principaux d’analyse de réseaux (centralité, clustering, etc)
• Outils de visualisation de grands réseaux
– Gephi, Cytoscape,Tulip (INRIA)
• Passage à l’échelle / Big Data :
– Giraph on Hadoop
– GraphX on Spark
– Bases de données de type graphes (Neo4J, etc)
Mineure « Data Science » Frédéric Pennerath
Quelques métriques « topologiques » de centralité
Pour un sommet 𝑠 d’un graphe 𝑔 = 𝑆, 𝐴 connexe de n sommets et m
arêtes/arcs :
Degré (nbr d’amis…) : nombre 𝑑𝑒𝑔(𝑠) de voisins de 𝑠
Coefficient de clustering : ratio des voisins de 𝑠 qui sont connectés
𝐶 𝑠 =𝑝𝑎𝑖𝑟𝑒𝑠 𝑑𝑒 𝑣𝑜𝑖𝑠𝑖𝑛𝑠 𝑑𝑒 𝑠 𝑐𝑜𝑛𝑛𝑒𝑐𝑡é𝑠
deg 𝑠2
Proximité : distance moyenne de 𝑠 aux autres sommets
𝑑(𝑠) = 𝐸𝑠′ 𝑑 𝑠, 𝑠′ = 𝑠′∈S𝑑(𝑠, 𝑠
′)
𝑛 − 1
Intermédiarité (betweenness) : nombre de plus courts chemins passant par 𝑠
𝐼(𝑠) =1
𝑛 − 12
𝑠1,𝑠2 ⊆𝑆∖ 𝑠
𝑝𝑙𝑢𝑠 𝑐𝑜𝑢𝑟𝑡𝑠 𝑐ℎ𝑒𝑚𝑖𝑛𝑠 𝑒𝑛𝑡𝑟𝑒 𝑠1𝑒𝑡 𝑠2 𝑝𝑎𝑠𝑠𝑎𝑛𝑡 𝑝𝑎𝑟 𝑠
𝑝𝑙𝑢𝑠 𝑐𝑜𝑢𝑟𝑡𝑠 𝑐ℎ𝑒𝑚𝑖𝑛𝑠 𝑒𝑛𝑡𝑟𝑒 𝑠1𝑒𝑡 𝑠2
n = 7 m = 9
i 1 2 3 4
deg(i) 𝟒 2 3 3
𝐶 𝑖 3
6
𝟏 2
3
1
3
𝑑 𝑖 𝟗
𝟔
13
6
10
6
𝟗
𝟔
𝐼 𝑖 5
15
0 1,5
15
𝟖
𝟏𝟓
2
5
3
1
4
6
7
Mineure « Data Science » Frédéric Pennerath
Quelques métriques « topologiques » de centralitéExemple du club de Karaté de Zachaky
Mineure « Data Science » Frédéric Pennerath
Quelques métriques topologiques globales
Diamètre : plus grande des distances (longueur d’un plus court chemin) entre
deux sommets
D = max𝑠1∈𝑆,s2∈𝑆
𝑑 𝑠1, 𝑠2
Rayon : plus grande distance du centre (sommet le moins éloigné de tout autre
sommet) à un sommet
𝑅 = min𝐶∈𝑆max𝑠∈𝑆𝑑 𝑠, 𝐶
Longueur moyenne : distance moyenne pour chaque paire de sommet
𝐿 = 𝐸 𝑑 𝑠1, 𝑠2 = 𝑠1∈𝑆,𝑠2∈S𝑑(𝑠1, 𝑠2)
𝑛 𝑛 − 1
Densité : ratio du nbr. d’arêtes sur nbr. des arêtes d’un graphe complet
𝑑 =2𝑚
𝑛(𝑛 − 1)
Degré moyen : moyenne des degrés des sommets
𝛿 =2𝑚
𝑛Coefficient de clustering : moyenne des coefficients de clustering des sommets
𝐶 = 𝐸 𝐶 𝑠 =3 × 𝑛𝑏𝑟. 𝑑𝑒 𝑠𝑜𝑢𝑠 𝑔𝑟𝑎𝑝ℎ𝑒𝑠 𝑡𝑟𝑖𝑎𝑛𝑔𝑢𝑙𝑎𝑖𝑟𝑒𝑠
𝑛𝑏𝑟. 𝑑𝑒 𝑠𝑜𝑢𝑠 𝑔𝑟𝑎𝑝ℎ𝑒𝑠 𝑐𝑜𝑛𝑛𝑒𝑥𝑒𝑠 à 3 𝑠𝑜𝑚𝑚𝑒𝑡𝑠
1
2
3
4
5
6
n = 7m = 9D = 4 R = 2 𝐿 = 1,7d = 0,4 𝛿 = 2,6 𝐶 = 0,7
7
Mineure « Data Science » Frédéric Pennerath
Théorie algébrique et spectrale des graphes• Calcul différentiel (laplacien, etc) sur les graphes pour étudier les phénomènes de
diffusion
• Représentent un graphe par ses matrices d’incidence / d’adjacence
• En pratique des matrices creuses disposant d’algorithmes d’algèbre linéaire de faible
complexité
1
2
3
4
𝐴 =
𝑠1 𝑠2 𝑠3 𝑠4𝑠1𝑠2𝑠3𝑠4
0 0 0 21 0 0 00 1 0 11 1 0 0
𝐵 =
−1 −1 0 0 2 01 0 −1 −1 0 00 0 1 0 0 10 1 0 1 −2 −1
Cas des graphes orientés :
1
2
3
4
𝐴 =
𝑠1 𝑠2 𝑠3 𝑠4𝑠1𝑠2𝑠3𝑠4
0 1 0 31 0 1 10 1 0 13 1 1 0
Cas des graphes non orientés :
𝐴 : matrice d’adjacence 𝑛 × 𝑛 𝐵 : matrice d’incidence 𝑛 ×𝑚
Mineure « Data Science » Frédéric Pennerath
Exemple de la centralité spectrale
Définition de la centralité spectrale : « Un sommet est d’autant plus central que ses voisins le sont »
𝐶 𝑠𝑖 =1
𝜆 𝑣∈𝑉 𝑠𝑖 𝐶(𝑣) avec 𝜆 > 0 et ∀𝑖, 𝐶 𝑠𝑖 > 0
Théorème :
𝐶 = 𝐶 𝑠1 … 𝐶 𝑠𝑛𝑇 est le vecteur propre de la plus grande valeur propre de la matrice d’adjacence
Démonstration:
𝐶 𝑠𝑖 =1
𝜆
𝑣∈𝑉 𝑠𝑖
𝐶(𝑣) =1
𝜆
𝑗
𝑎𝑖,𝑗 𝐶(𝑠𝑗) ⇒ 𝜆 𝐶 = 𝐴 𝐶
D’après le théorème de Perron-Frobenius sur les matrices irréductibles (donc sur les graphes connexes),
∀𝑖, 𝐶 𝑠𝑖 > 0 ⇒ 𝜆 est la plus grande valeur propre
Mineure « Data Science » Frédéric Pennerath
Quelques métriques spectrales de centralité
sur l’exemple du club de Karaté de Zachary
Mineure « Data Science » Frédéric Pennerath
MODÈLE DE MARCHE ALÉATOIRE
ET
INDICE PAGERANK
Mineure « Data Science » Frédéric Pennerath
Indice PageRank(Larry Page, Sergey Brin, 1996)
L’indice PageRank de Google détermine la notoriété d’une page/site sur le Web.
Applications :
– pour pondérer la pertinence d’un couple (requête, page) par la notoriété de la page.
– pour lutter contre le web spam
Fondé sur les chaînes de Markov et les modèles de marche aléatoire :
– Un agent se promène aléatoirement sur la toile en suivant un lien au hasard
– La notoriété d’une page correspond au taux de présence (i.e. à la probabilité) de l’agent sur la page
Nombreuses variantes :
– Topic Sensitive PageRank : page rank associé à un thème particulier
– SimRank : mesure de similarité entre deux noeuds
Mineure « Data Science » Frédéric Pennerath
Chaîne de Markov :
transitions markoviennes aléatoires entre un ensemble fini de n états
Matrice de transition d’une chaîne stationnaire :
𝑷𝑖,𝑗 = 𝑃 𝑋𝑡+1 = 𝑗 𝑋𝑡 = 𝑖 ⇒ 𝑃 𝑋𝑡 = 𝑷𝑇 𝑡 × 𝑃 𝑋0
Matrice stochastique : la somme des coefficients d’une ligne vaut 1.
Représentation sous la forme d’un graphe orienté pondéré
Rappel des chaînes de Markov
1 2 3
0,25 0,75
1 1
Temps de retour moyen : 𝑇𝑟 𝑥 = 𝐸 min𝑡𝑋𝑡 = 𝑥 𝑋0 = 𝑥)
𝑇𝑟 1 =
𝑘=0
+∞
2 + 2𝑘 ⋅ 0,25 ⋅ 0,75𝑘 =1
3
𝑘=1
+∞
2𝑘 ⋅ 0,75𝑘 =2
3⋅0,75
1 − 0,75 2= 8
𝑷 =0 1 00,25 0 0,750 1 0
⟺
Mineure « Data Science » Frédéric Pennerath
Rappel des chaînes de Markov
Stationnarité : une distribution d’état 𝑃𝑋 est stationnaire ssi 𝑃𝑋 est vecteur propre de 𝑷𝑇 de la
valeur propre 1 :
𝑃𝑋 = 𝑷𝑇 ⋅ 𝑃𝑋
Ergodicité : une chaîne est ergodique si elle converge vers une même distribution 𝑃 𝑋∞ lorsque
𝑡 → +∞ :
∀𝑃 𝑋0 , lim𝑡→+∞𝑃 𝑋𝑡 = 𝑃 𝑋∞
Théorème :
Une chaîne est ergodique si et seulement si elle est
– irréductible : tout état est accessible depuis tout autre état
graphe fortement connexe ⇔ ∀𝑖, ∀𝑗, ∃𝑡 𝑷𝑇𝑡
𝑖,𝑗> 0
– récurrente positive : l’espérance du temps de retour est fini pour tout état 𝑖 (ici au plus 8)
∀𝑖 𝐸 𝑇𝑟 𝑖 < +∞
– non périodique : les temps de retour possibles ont un pgcd égal à 1 (ici 2)
Propriété : la distribution asymptotique 𝑃 𝑋∞ d’une chaîne ergodique est la seule stationnaire.
Mineure « Data Science » Frédéric Pennerath
Principe de PageRank
Principe : progression aléatoire équiprobable
Matrice de transition équivalente :
Si deg V𝑖 = 0,𝑷𝑖𝑖 = 1 et pour 𝑖 ≠ 𝑗,𝑷𝑖𝑗 = 0
Sinon si 𝑖, 𝑗 ∈ 𝐸, alors 𝑷𝑖𝑗 =1
deg 𝑉𝑖sinon 𝑷𝑖𝑗 = 0
1
2
3
4
5 6
Problème des culs-de-sac :
La chaîne n’est pas irréductible.
𝑷 =
01
201
20 0
0 01
2
1
20 0
0 0 0 0 1 02
301
30 0 0
0 01
20 0
1
20 0 0 0 0 𝟏
Mineure « Data Science » Frédéric Pennerath
Principe de PageRank
Modification : saut aléatoire sur une page depuis un puits
Si deg V𝑖 = 0,𝑷𝑖𝑗 =1
𝑛
Sinon si 𝑖, 𝑗 ∈ 𝐸, alors 𝑷𝑖𝑗 =1
deg 𝑉𝑖sinon 𝑷𝑖𝑗 = 0
1
2
3
4
5 6 𝑷 =
01
201
20 0
0 01
2
1
20 0
0 0 0 0 1 02
301
30 0 0
0 01
20 0
1
21
6
1
6
1
6
1
6
1
6
1
6
Mineure « Data Science » Frédéric Pennerath
Principe de PageRank
Problème : non-ergodicité de 𝑷 (périodicité, non irréductibilité, temps de retour moyen infini)
Solution : introduction d’une probabilité 𝛼 de reset de la marche aléatoire
𝑷𝑝𝑎𝑔𝑒𝑟𝑎𝑛𝑘 = 1 − 𝛼 ⋅ 𝑷 + 𝛼 ⋅1
𝑛⋅ 𝑱 avec ∀𝑖, ∀𝑗, 𝑱𝑖𝑗 = 1
Typiquement 𝛼 = 10%
Propriété : 𝑷𝑝𝑎𝑔𝑒𝑟𝑎𝑛𝑘 est ergodique car
• Irréductible : ∀𝑖∀𝑗, Tij ≥𝛼
𝑛> 0
• Non périodique : ∀𝑖, Tii ≠ 0 (boucle) donc P 𝑇𝑟 𝑖 > 0 et donc pgcd des temps de retour = 1
• Récurrente positive :
∀𝑖, 𝑃 𝑋𝑡 = 𝑖|𝑋0 = 𝑖 ≤ 1 −𝛼
𝑛
𝑡−1donc 𝐸 𝑇𝑟 𝑖 = 𝑡 𝑡 × 1 −
𝛼
𝑛
𝑡−1< +∞
Mineure « Data Science » Frédéric Pennerath
Implémentation de PageRank
• Calcul matriciel de 𝑃 𝑋∞ impossible (multiplication par 𝑷 en Θ 𝑛2 )
• Utilise le fait que 𝑷 est une matrice creuse.
• Méthode itérative approchée sur les listes d’incidence inversées du graphe
– Initialisation : 𝑃 𝑋0 = 𝑗 =1
𝑛
– 𝑃 𝑋𝑡+1 = 𝑗 = 1 − 𝛼 𝑝𝑎𝑔𝑒 𝑖 𝑝𝑜𝑖𝑛𝑡𝑎𝑛𝑡 𝑠𝑢𝑟 𝑗1
𝑛𝑏𝑟 𝑑𝑒 𝑙𝑖𝑒𝑛𝑠 𝑑𝑒 𝑖𝑃 𝑋𝑡 = 𝑖 + 𝛼 ⋅
1
𝑛
– Condition d’arrêt dès que 𝑋𝑡 − 𝑋𝑡−1 ∞ ≤ 휀
𝑝𝑎𝑔𝑒𝑟𝑎𝑛𝑘 𝑖 = 𝑃(𝑋𝑡 = 𝑖) dès que ∀𝑖 𝑃 𝑋𝑡 = 𝑖 − 𝑃 𝑋𝑡−1 = 𝑖 ≤ 휀
• Approche itérative compatible avec calcul de type Map/Reduce
(cf Giraph/Hadoop, NetworkX/Spark)
Mineure « Data Science » Frédéric Pennerath
En résumé
1
2
3
4
5 6 𝑷 =
01
201
20 0
0 01
2
1
20 0
0 0 0 0 1 02
301
30 0 0
0 01
20 0
1
21
6
1
6
1
6
1
6
1
6
1
6
𝑷𝑝𝑎𝑔𝑒𝑟𝑎𝑛𝑘 = 0,9𝑷 + 0,1 𝑱
1
2
3
4
5 6
𝑃 𝑋∞ =
0,280,220,550,320,580,35
0,28
0,22
0,55
0,32
0,58 0,35
1. Prise en compte des puits
2. Introduction du
reset
3. Algorithme itératif4. Interprétation de la
distribution limite
Mineure « Data Science » Frédéric Pennerath
DÉTECTION DE COMMUNAUTÉ
ET
CLUSTERING SPECTRAL
Mineure « Data Science » Frédéric Pennerath
Problème de détection des communautés
dans les réseaux sociaux
Communauté : ensemble de sommets dont le
sous-graphe induit a une forte densité d’arêtes par
rapport à la densité moyenne du réseau
Problème de clustering topologique :
• Partition de communautés
• Communautés recouvrantes
• Modèles hiérarchiques (communautés
imbriquées)
Exemples de méthodes
• Détection de k-cliques approchées
• Clustering spectral
Mineure « Data Science » Frédéric Pennerath
Approche de type « clustering top-down »(New Spectral Methods for Ratio Cut Partitioning and Clustering, Hagen & al, 1992)
Algorithme :
1. Trouver la meilleure coupe / partition en deux
communautés disjointes 𝑆 et 𝑆 selon un critère de
coût à minimiser
2. S’arrêter si on a atteint un critère d’arrêt
3. Sinon réitérer le processus sur chacun des deux
sous-graphes induits par 𝑆 et 𝑆.
Coupe : ensemble 𝐶 des arêtes
séparant deux sous-ensembles de
sommets disjoints 𝑆 et 𝑆
Mineure « Data Science » Frédéric Pennerath
Exemple de calcul de coupe
par la « méthode du vecteur de Fiedler »
Mineure « Data Science » Frédéric Pennerath
Comment définir la meilleure coupe ?
Idée : trouver un ensemble de sommets pour lequel
l’information diffuse/percole peu à l’extérieur
Objectif:
Trouver une coupe telle que
• 𝑆 ait peu de connexions externes
• 𝑆 ait beaucoup de connexions internes
• 𝑆 a moins de connexions que 𝑆
Fonction de coût à minimiser :
• Conductance 𝜙(𝑆)
• Coût de coupe 𝐶(𝑆)
𝜙(𝑆) =3
min 9 + 3,14 + 3= 0,25
𝑪
𝑆
𝑆
𝜙(𝑆) =𝑠1, 𝑠2 ∈ 𝐴| 𝑠1 ∈ 𝑆, 𝑠2 ∉ 𝑆
min 𝑠1, 𝑠2 ∈ 𝐴| 𝑠1 ∈ 𝑆 ∨ 𝑠2 ∈ 𝑆 , 𝑠1, 𝑠2 ∈ 𝐴| 𝑠1 ∉ 𝑆 ∨ 𝑠2 ∉ 𝑆
𝐶(𝑆) =𝑠1, 𝑠2 ∈ 𝐴| 𝑠1 ∈ 𝑆, 𝑠2 ∉ 𝑆
𝑆 × 𝑆
𝐶(𝑆) =3
5 × 7= 0,08
Mineure « Data Science » Frédéric Pennerath
Matrice laplacienne
Laplacien d’un graphe : matrice 𝐿 de taille 𝑛 × 𝑛 telle que 𝐿𝑖𝑖 = deg(𝑠𝑖) − 𝐴𝑖𝑖 et 𝑖 ≠ 𝑗 ⇒ 𝐿𝑖𝑗 = −𝐴𝑖𝑗
Propriétés :
• En notant D = 𝑑𝑖𝑎𝑔 deg 𝑠1 , … , deg 𝑠𝑛 , 𝐿 = 𝐷 − 𝐴 = 𝐵 × 𝐵𝑡
• Matrice symétrique définie semi-positive (donc diagonalisable de valeurs propres non négatives)
• Chaque composante connexe est un vecteur propre de la valeur propre 0 :
𝐿 × 1 = 0 avec 1 = 1 … 1 T
1
2
3
4
𝐷 =
𝑠1 𝑠2 𝑠3 𝑠4𝑠1𝑠2𝑠3𝑠4
4 0 0 00 3 0 00 0 2 00 0 0 5
𝐴 =
𝑠1 𝑠2 𝑠3 𝑠4𝑠1𝑠2𝑠3𝑠4
0 1 0 31 0 1 10 1 0 13 1 1 0
⇒ 𝐿 = 𝐷 − 𝐴 =
𝑠1 𝑠2 𝑠3 𝑠4𝑠1𝑠2𝑠3𝑠4
4 −1 0 −3−1 3 −1 −10 −1 2 −1−3 −1 −1 5
Mineure « Data Science » Frédéric Pennerath
Spectre de la matrice laplacienne
Soit le spectre Λ𝐿 = 𝜆1, … , 𝜆𝑘 de 𝐿 tel que 0 = 𝜆1 < 𝜆2 < ⋯ < 𝜆𝑘 d’un graphe connexe
Propriété :
𝜆2 = min𝑋⊥1
𝑋𝑇𝐿𝑋
𝑋𝑇𝑋
= min 𝑥𝑖=0
𝑋𝑇𝐿𝑋
𝑋𝑇𝑋𝑛 𝜆2 = min
𝑥𝑖=0
𝑥𝑖2=𝑛
𝑋𝑇𝐿𝑋
= min 𝑥𝑖=0
𝑥𝑖2=𝑛
𝑖∈𝑆
deg 𝑠𝑖 ⋅ 𝑥𝑖2 − 2
𝑖,𝑗 ∈A
𝑥𝑖𝑥𝑗
= min 𝑥𝑖=0
𝑥𝑖2=𝑛
𝑖,𝑗 ∈A
𝑥𝑖 − 𝑥𝑗2
Mineure « Data Science » Frédéric Pennerath
Lien avec la coupe optimale
Soit 𝑋2 = 𝑥𝑖 le vecteur propre de 𝜆2 (vecteur de Fiedler)
𝑋2 = argmin 𝑥𝑖=0
𝑥𝑖2=𝑛
𝑖,𝑗 ∈A
𝑥𝑖 − 𝑥𝑗2
Soit la coupe 𝑆 = 𝑠𝑖 | 𝑥𝑖 ≥ 0 et 𝑆 = 𝑠𝑖 | 𝑥𝑖 < 0
Supposons que ∀𝑖 𝑥𝑖 = ±1
• 𝑖,𝑗 ∈A 𝑥𝑖 − 𝑥𝑗2= 4 𝑠1, 𝑠2 ∈ 𝐴| 𝑠1 ∈ 𝑆, 𝑠2 ∉ 𝑆
• 𝑥𝑖 = 0 ⇒ 𝑆 = 𝑆 =𝑛
2
Conséquence : coût de coupe 𝐶 𝑆 =𝑠1,𝑠2 ∈𝐴| 𝑠1∈𝑆,𝑠2∉𝑆
𝑆 × 𝑆=𝜆2
𝑛est minimal
En pratique : les 𝑥𝑖 de 𝑋2 ne valent pas ±1mais ne sont jamais très éloignés
Mineure « Data Science » Frédéric Pennerath
En résumé
1
3
2
𝐿 = 𝐷 − 𝐴 =
2 −1 −1−1 2 −1−1 −1 3 −1
−1 3 −1 −1−1 2 −1−1 −1 2
Λ = 0 ; 0,44; 3; 3; 3; 4,5
5
4
6
𝑋2 =
0,460,460,26−0,26−0,46−0,46
1
3
2
5
4
6
0,46
0,46
0,26
−0,46
−0,46
-0,26
1. Calcul du Laplacien
2. Calcul des valeurs propres
3. Calcul du vecteur de Fiedler
4. Extraction des
composantes positives et
négatives