La méthodologie

L

Comment, à partir de plusieurs dizaines de millions de données sur les villes, peut-on calculer des pronostics pour des élections comme les municipales ? La méthodo complète.

Qui a travaillé sur le projet ?

Trois entités du groupe CCM Benchmark sont derrière ce projet ElectionLab :

La cellule Open Data de CCM Benchmark, habituellement chargée de collecter les données publiques mises à disposition par le gouvernement (Etalab, Insee, ministères, etc.) et de les mettre en ligne avec un objectif éditorial, comme par exemple dans l’encyclopédie des villes de France de Linternaute.com. C’est cette équipe qui a fourni les données de départ de ce projet.

Les équipes Data du groupe, habituellement chargées d’analyser de leur côté plusieurs millions de données chaque jour avec cette fois un objectif de ciblage publicitaire (programmatique, retargeting, RTB, etc.). Ce sont les data-scientists de cette équipe qui ont exploité les données issues de l’Open data et qui ont défini le meilleur modèle pour tenter d’obtenir des prédictions dans les villes de plus de 1000 habitants.

Les équipes éditoriales de Linternaute.com qui ont donné une approche “métier” à l’ensemble. Cette équipe est intervenue à chaque étape de l’apprentissage, notamment pour une cartographie, ou “mapping”, des nuances politiques. Le but : homogénéiser les 290 nuances définies par le ministère de l’Intérieur au fil des 17 élections analysées et en tirer des nuances unifiées servant de base aux résultats. Ce mapping est resté très générique, l’objectif étant de ne pas introduire de biais humain dans le modèle.

Quelles sont les données d’entrée ?

En amont de toute expérience d’intelligence artificielle ou de machine learning, il faut sélectionner les données qui seront entrées dans le système, autrement dit les “inputs”. Notre choix s’est porté sur des données Open Data des 35 000 communes de France, ainsi que les résultats des élections “récentes”, c’est-à-dire ayant eu lieu entre 2004 et 2019 :

  • 178 millions de données non-électorales (données géographiques, économiques, sociales, démographiques, etc.)
  • 1 million de données issues des résultats des élections depuis 2004 (européennes, municipales, régionales, départementales, présidentielle, législatives)
  • 1300 variables de classement (population, revenus, équipements immobiliers, budget des communes, impôts etc.)

Est considérée comme une “donnée” une valeur pour un prédicat (la population par ex.), une entité (une ville par ex.) et une période temporelle (une année par ex.).

Pourquoi avoir choisi les données publiques ?

Problématiques éthiques : les données extraites de l’Open Data sont des données publiques. Aucune donnée personnelle, aucun tracking et aucun crawl des réseaux sociaux n’a été réalisé dans le cadre de cette étude, qui a suivi une méthode non-intrusive.

Problématiques d’accès : il n’a pas été nécessaire de crawler ou de recourir aux API de grandes plateformes comme Facebook ou Twitter, qui sont de plus en plus restreintes. Les données utilisées font toutes parties de jeux de données d’Etalab.gouv.fr ou d’organisations publiques.

Problématiques d’interprétation : les méthodes d’Opinion mining, le plus souvent pratiquées sur une extraction de messages postés sur Twitter, demandent une expertise poussée dans l’interprétation du langage, avec des difficultés à distinguer les messages positifs, négatifs, ironiques, les biais liés à la “désirabilité sociale”, l’influence des bots etc. Les Open Data sont au contraire des données purement quantitatives, qui ne souffrent d’aucun biais d’interprétation.

Quelle méthode de machine learning a été adoptée ?

Les explications d’Anh-Phuong Ta, Lead data scientist (Groupe) :

A propos du machine learning et de l’IA, en général, il y a trois types de modèles :

Les modèles prédictifs, où il s’agit de classifier des observations via un apprentissage “supervisé”. Un problème supervisé correspond au cas où chaque donnée a été associée au préalable à un label/une classe.

Les modèles descriptifs, où on procède par groupement des exemplaires selon leurs similitudes via un apprentissage “non supervisé”. On parle aussi de “clustering”, car on ne connaît pas à priori les “classes” dans lesquelles on regroupe les données.

Les modèles adaptifs, avec notamment ce qu’on appelle l’apprentissage par renforcement.

Nous avons travaillé avec les méthodes d’apprentissage “supervisé” puisqu’il était possible d’utiliser les résultats des dernières élections pour déterminer des labels.

Dans les grandes lignes, nous avons entraîné plusieurs algorithmes à partir de ces millions de données pour les tester sur les précédentes élections. Notre approche de machine learning comprend 4 étapes principales :

Etape 1 : La préparation des données

Après avoir utilisé les méthodes statistiques pour supprimer les variables non-informatives, nous avons gardé environ 50 variables jugées les plus influentes.

Intitulé de la variable
Population municipale
Nombre de ménages
Familles avec 1 enfant de moins de 25 ans (pourcentage)
Familles monoparentales (pourcentage)
Personnes divorcées (pourcentage)
Population de plus de 60 ans (pourcentage)
Population masculine municipale (pourcentage)
Population étrangère (pourcentage)
Population immigrée (pourcentage)
Population salariée titulaires de la fonction publique ou d’un CDI (pourcentage)
Population non salariée de 15 ans et plus travaillant à temps partiel (pourcentage)
Hommes salariés à temps partiel (pourcentage)
Hommes de 25 à 54 ans salariée à temps partiel (pourcentag )
Population active sans emploi entre 15 et 64 ans (recensement principal) (pourcentage)
Hommes actifs sans emploi entre 15 et 64 ans (recensement principal)
Population inactive entre 15 et 64 ans (recensement principal) (pourcentage)
Salaire net mensuel des cadres
Part du prix de l’eau potable sur le montant total de la facture
Allocataires CAF (pourcentage)
Nombre de logements
Nombre de résidences principales (pourcentage)
Nombre de résidences principales de 4 pièces (pourcentage)
Taux intercommunal de la CFE
Nombre de foyers fiscaux imposables (pourcentage)
Nombre de foyers fiscaux pour l’impôt sur le revenu (pourcentage)
Part de zones agricole
Nombre de foyers fiscaux dont les revenus sont inférieurs à 10001 euros sur le total de foyers fiscaux (pourcentage)
Montant moyen de l’impot sur le revenu par foyer fiscal imposable
Taux intercommunal de la taxe sur le foncier bati
Taux departemental de la taxe fonciere sur le bati
Taux regional de la taxe fonciere sur le bati
Taux communal de la taxe fonciere sur le non-bati
Taxe additionnelle au foncier non bâti au profit de l’intercommunalité – Taux
Taux departemental de la taxe fonciere sur le non-bati
Taux regional de la taxe fonciere sur le non-bati
Taxe d’habitation – Taux
Taux intercommunal de la taxe d’habitation
Taux departemental de la taxe d’habitation
Taux communal de la taxe d’ordures menageres
Produits de fonctionnement : impôts locaux (ratio population)
Total des charges de fonctionnement (ratio population)
Total des produits de fonctionnement (ratio population)
Charges de fonctionnement : charges de personnel (ratio population)
Population non scolarisée de 15 ans et plus (pourcentage)
Population titulaire d’un baccalauréat ou d’un brevet professionnel de 15 ans et plus (pourcentage)
Population titulaire du brevet des collèges de 15 ans et plus (pourcentage)
Somme des écoles maternelles
Nombre d’accidents
Morts pour 1000 habitants
Nombre de ménages disposant d’une voiture (pourcentage)
Population scolarisée entre 11 et 14 ans (pourcentage)
Superficie
Zones agricoles
Historique des résultats des élections depuis 2004 (résultats communaux)

Etape 2 : L’extraction des features numériques

A partir de ces variables, nous avons calculé les “features”, autrement dit les caractéristiques numériques servant à entraîner le modèle. Ces features numériques ont ensuite été standardisées afin que chaque feature ait la même importance. Deux types de features ont été extraits : les features calculées à partir des données des villes et les features calculées à partir des couleurs politiques. Ces deux types de features ont été combinés et nous les avons considérés comme les vecteurs représentatifs des paires couleurs/villes.

Etape 3 : La phase d’entraînement

Grâce à nos analyses des variables, nous avons séparé les 9000 villes de plus de 1000 habitants en quatre jeux de données en fonction de la population de chaque ville, les quatre jeux de données ayant vocation à alimenter quatre modèles différents lors de la phase d’apprentissage, avec des paramètres ajustés.

Avant de construire chaque modèle, les vecteurs features ont été divisés en portions pour chaque jeu de données : le training set (~70%), et le testing set (~30%). Le testing set n’a pas été utilisé pour l’apprentissage, mais pour vérifier le fonctionnement du modèle sur de nouvelles données. Un re-échantillonnage a été appliqué sur les training sets pour que les classes soient équilibrées avant la création du modèle.

Il s’agissait d’un problème de classification multi-labels. Nous avons alors combiné deux méthodes d’apprentissage automatique pour entraîner les 4 différents modèles : une méthode XGBoost (eXtreme Gradient Boosting) et un réseau de neurones (neural networks).

Parallèlement à l’estimation de la probabilité de gagner pour chaque couleur, nous avons construit un modèle séparé qui permet de prédire l’exactitude (ou le niveau de confiance) de chaque modèle prédictif. Un niveau de confiance sur une échelle de quatre a ainsi été appliqué à chaque prédiction ville/couleurs.

Etape 4 : L’utilisation des modèles entraînés

Nous avons extrait des features des villes et des couleurs sur 2020 de la même façon que les données d’entraînement. Nous avons ensuite utilisé les modèles appris pour réaliser des prédictions sur ces features.

Quand le taux moyen de classification prédit par le modèle était un peu loin de celui attendu sur un jeu de données étiquetés, nous avons appliqué des méthodes heuristiques pour que les sorties du modèle soient calibrées.

Quels résultats ont été livrés ?

En guise de données de sortie, ou “outputs”, la machine a livré une probabilité de victoire en pourcentage pour 34 couleurs politiques, traduites selon 8 familles principales dans chacune des villes de plus de 1000 habitants. Les 8 familles sont les suivantes :

  • XD : extrême droite
  • D : droite
  • C : centre
  • G : gauche
  • XG : extrême gauche
  • ECO : écologistes
  • DIV : divers
  • SOUV : souverainistes

Seules 2 à 5 familles sont affichées dans les résultats, les autres étant généralement au-delà de la marge d’erreur, elles ne sont pas présentées dans les résultats finaux. La notion de nuance ou d’étiquette politique ayant beaucoup moins de sens dans les communes de moins de 1000 habitants, nous avons décidé de les exclure de l’expérimentation.

Quelles ont été les difficultés de notre méthode ?

La faiblesse de la profondeur des données : il n’y avait pas assez d’historique pour que le modèle soit généralisable. Par exemple, nous n’avions que les résultats des deux dernières campagnes municipales, des élections lors desquelles La République en marche n’existait pas encore. Il s’agissait en outre de données froides, datées, qui ne tiennent pas compte du contexte, de la campagne ou de l’actualité locale…

Le risque de sur-apprentissage (ou overfitting) : avec plus de variables que d’observations (ou de données), nos datascientists ont dû mener une analyse préalable pour déterminer des corrélations entre les différentes variables et les résultats électoraux, notamment ceux des municipales 2008 et 2014, pour choisir les bonnes variables.

Le déséquilibre significatif entre les classes des données : ce projet a été réalisé avant la publication officielle des listes des candidats et des nuances par ville. Après regroupement, des couleurs politiques étaient présentes partout et d’autres représentées dans quelques villes seulement, ce qui a provoqué un déséquilibre important dans les différentes classes de données.

Lire aussi la présentation globale du projet et de ses limites

Anh-Phuong Ta
Anh-Phuong Ta

Lead data scientist (Groupe Figaro)

Benoit Deshayes

Responsable de la rédaction de Linternaute.com