Quand l’Éducation Influence la Sécurité : Décryptage de l’impact de la construction des Écoles sur la Criminalité à Chicago

Par : @Soumaya RAZZOUK, @Chenjie QIAN, @Hicham CHEKIRI et @Yann Legendre

Avec un taux de criminalité de 33 pour mille habitants et plus de 8 millions de crimes enregistrés depuis 2001, Chicago figure parmi les villes les plus touchées par la criminalité en Amérique.

Quels facteurs influencent la criminalité dans cette métropole ?

Inspiré par des recherches analysant la relation entre l’éducation et la criminalité notre projet explore l’influence des écoles sur la sécurité urbaine.

Répartition géographique des écoles et des incidents criminels à Chicago – Source des données : Chicago Data Portal

Des études au préalables ont montré que les caractéristiques des écoles, telles que les activités parascolaires, la nature de l’école et les heures de cours, peuvent avoir un impact significatif sur la délinquance et la criminalité indépendamment du contexte social et démographique.

Notre objectif est de développer un modèle de Machine Learning prédictif qui évalue l’impact potentiel de la construction des nouvelles écoles sur le taux de criminalité sur une période de sept ans, offrant ainsi des perspectives innovantes afin d’explorer comment l’éducation peut influencer la sécurité urbaine à Chicago.

Données utilisées

Répartition géographique des écoles et le rayon d’impact des incidents criminels à Chicago – Source des données : Chicago Data Portal

Notre étude s’appuie sur des données publiques issues du Chicago Data Portal, qui est géré par la municipalité de la ville. Nous avons analysé sept jeux de données relatifs aux établissements scolaires de 2016 à aujourd’hui, ainsi qu’un jeu de données sur les crimes enregistrés de 2001.

L’objectif est d’évaluer l’impact des écoles sur le taux de criminalité dans un rayon de 1 km autour de celles-ci, sur une période allant jusqu’à sept ans.

Pour cela, nous avons créé des jeux de données croisés permettant d’analyser l’évolution annuelle de la criminalité par rapport à l’année de référence 2016 :

  • Dataset 1 : écoles 2016 ↔ crimes 2017
  • Dataset 2 : écoles 2016 ↔ crimes 2018
  • Dataset 3 : écoles 2016 ↔ crimes 2019
  • Dataset 4 : écoles 2016 ↔ crimes 2020
  • Dataset 5 : écoles 2016 ↔ crimes 2021
  • Dataset 6 : écoles 2016 ↔ crimes 2022
  • Dataset 7 : écoles 2016 ↔ crimes 2023

Regardons les données de plus près : Analyse des corrélations

Matrice de corrélation des variables du jeu de données fusionné

Pour résumer les corrélations des données analysées, nous pouvons dire que les corrélations entre les variables étudiées et le taux de criminalité sont relativement faibles.

Cela confirme l’hypothèse selon laquelle le taux de criminalité est influencé par une multitude de facteurs autres que les seules politiques internes des écoles.

Toutefois, il semble exister une association plus marquée entre la présence d’écoles dans un quartier, le nombre d’étudiants, et le taux de criminalité plutôt qu’avec les caractéristiques propres à chaque établissement scolaire.

Construction du modèle

Algorithmes utilisés

Nous avons utilisé plusieurs modèles, y compris le Random Forest, SVM et des variantes de Boosting, pour identifier ceux qui prévoient le mieux les taux de criminalité future.

Les modèles les plus performants, jugés sur la base de leur erreur moyenne absolue (MAE) et de l’erreur quadratique moyenne (RMSE), ont été combinés pour créer un modèle composite robuste.

Ce modèle est adapté pour prédire l’évolution de la criminalité sur une période allant jusqu’à sept ans.

Validation

Pour garantir la fiabilité de nos modèles prédictifs, nous avons mis en place une validation croisée sur les modèles, chacun comprenant environ 655 lignes.

Cette technique permet de s’assurer que nos algorithmes généralisent bien au-delà des données d’entraînement et ne mémorisent pas simplement les données (overfitting).

Les résultats de cette validation croisée ont confirmé l’efficacité de nos modèles, avec une diminution des erreurs.

L’analyse de l’importance des variables, issue de nos modèles et tenant compte des corrélations limitées, révèle que la :

  • le taux de criminalité est davantage lié à la proximité des établissements scolaires qu’à leurs politiques internes comme les codes vestimentaires ou les programmes parascolaires.
  • Cette divergence par rapport aux articles identifiés souligne l’importance de prendre en compte le contexte local de chaque zone, avec les différents indicateurs démographiques.

Résultats ? Notre modèle offre une double fonctionnalité

  1. Prédit l’évolution du taux de criminalité sur sept ans en se basant sur les données actuelles des écoles. Ainsi, il est capable de projeter l’incidence criminelle de 2024 à 2030 en utilisant les informations de 2023.

2. Simule l’effet de l’ajout d’une nouvelle école dans une zone spécifique (Latitude et longitude) et évalue l’impact sur la criminalité dans un rayon de 1 KM de l’école et les écoles à côté (en se concentrant sur les intersections des cercles).

Le modèle nous permet aussi de faire une comparaison de la situation des crimes avec et sans l’introduction d’une école avec des critères spécifique dans une zone donnée .

Nos simulations révèlent que l’extension des programmes parascolaires peut diminuer l’impact sur le taux de criminalité environnant.

Conclusion

Les résultats obtenus à travers notre modèle fournissent une base solide pour les décideurs locaux de Chicago afin de prendre des décisions en ce qui concerne la construction d’écoles dans des zones spécifiques.

Notre analyse a révélé aussi que l’impact des écoles sur la criminalité locale est complexe et ne repose pas uniquement sur les programmes éducatifs, soulignant l’importance d’intégrer d’autres facteurs lors de la planification de nouvelles infrastructures éducatives (postes de polices, état du quartier …) et de prendre en considération les indicateurs démographiques, la situation financière des étudiants recrutés par chaque école pour plus d’alignement avec les articles sur lesquels nous avons basés nos hypothèses..

Les insights fournis par notre étude offrent des pistes prometteuses pour des stratégies urbaines plus éclairées. Pour aller de l’avant, il serait judicieux d’envisager une approche collaborative impliquant éducateurs, autorités locales, et communautés pour bâtir un environnement plus sûr. Finalement, cette recherche ouvre la voie à des études supplémentaires qui pourraient explorer des interventions ciblées et personnalisées, contribuant ainsi à la transformation positive de Chicago.

Références

  • Crews, G. (2009). Education and crime. In J. M. Miller 21st Century criminology: A reference handbook (pp. 59-66). SAGE Publications, Inc., https://www.doi.org/10.4135/9781412971997.n8
  • Gottfredson et al., (2004). « Do After School Programs Reduce Delinquency? »
  • Willits, Broidy, et Denman, « Schools, Neighborhood Risk Factors, and Crime ».

Can Data Science unlock the secrets of Global Warming’s impact on Agriculture?

By Breno HASPARYK ANDRADE, Ferdy LARROTTA RUIZ, Tran Phuong Uyen NGUYEN, Nour ABBOUD

As we travel through the Earth, we can notice the symphony we hear all around, from the smallest grain of sand, to the faraway planets, to a flower putting roots in the ground, every bird in the sky, every rock, and every raindrop as it falls from the clouds, every ant, every plant, every breeze, and all the seas contribute to this beautiful composition. However, within this natural orchestra, there’s a dangerous problem that demands our attention — ‘Global Warming’.

With the variation of the temperature over recent decades, the agriculture is considered as one of the most affected sectors by global warming. These environmental changes have disrupted the agricultural landscape, affecting both its ecology and economy.

Describing the impact of global warming on agriculture is a bit like exploring a big, diverse world map. Each country in this map has its own distinct climate, crops, and economic structures. This diversity is what makes our world interesting but also makes problem-solving a bit challenging.

This is where the idea of assessing vulnerability for countries takes center stage. Consider Vulnerability as a measure of how susceptible a country is to the challenges posed by global warming in the sector of agriculture.

Some countries may be more resilient, while others may face high risks due to their specific circumstances which make them vulnerable countries. Our challenge: predict the vulnerability of the countries by 2030.

Given the crucial role of non-governmental organizations (NGOs) to address the effects of global warming on agriculture, our primary focus goes beyond identifying the most vulnerable countries, we aim to predict this vulnerability by the year 2030 and foresee the difficulties before they happen. In that way, we can empower NGOs with pivotal information that may serves as initiatives for them to take action and tailor solutions and strategies before the things get too hard for vulnerable countries.

A data-driven definition of Vulnerability

To achieve this ambitious goal, we delved into the world of data. This exploration involves carefully choosing our data from a reliable, open- data source: ‘Food and Agriculture Organization of the United Nations’. We focus on Geography and Economics data, Environment Temperature Changes Data and Agriculture (Crop Yield) Data.

  • Geography and Economics data1: it underscores information related to percentage of the country area cultivated, Gross Domestic product (GDP), agriculture’s GDP contribution, total renewable water resources, and the national rainfall Index.
  • Environment Temperature Change Data2: it focuses on temperature change factor for different countries.
  • Agriculture (Crop Yields) Data3: it involves the production values for specific crop yields. All our datasets are meticulously organized, categorized by country and year.

Inspired by cutting-edge research45, we’ve strategically organized our variables into three main components. Each component serves as a building block for our mission to assess vulnerability in the face of global warming’s impact on agriculture. Let’s delve into these components:

Exposure: How much the country is exposed to different climatic factors.

Sensitivity: How sensitive the agriculture in the area is to certain risks.

Adaptive Capacity: How well the area can adapt to and cope with the challenges posed by global warming.

We then attribute each variable to one of those three components as well as adding new variables to enhance our understanding.

Data Preparation

We started by preparing our datasets and transform them into refined insights in order to make them ready for future work.

  1. Rename the countries and matching them: We begin by renaming and identifying matching countries across all datasets. This is a foundational step when merging all the datasets together.
  1. Handling Missing Data: We address missing data using advanced techniques. The power of KNN imputation or zero imputation comes into play, ensuring our datasets are robust and comprehensive.
  1. Creating New Variables: we succeeded to create new variables as outlined in the data organizing phase. This step play an important role in shaping our analysis.
  1. Data Integration: Merging datasets together seamlessly, we ensure a unified view that enhances the effectiveness of our analysis.
  1. Data Normalization: Recognizing the diverse nature of our variables, we implement normalization techniques for both positive and negative variables. Positive variable indicates a positive relation with vulnerability, while negative variable signify a negative relation. This step ensures fair treatment of climate and agriculture variables for accurate vulnerability assessment.

Assessing Global Vulnerability: How does it Work?

Since our goal is to identify the vulnerable countries in the face of global warming’s impact on the agriculture by 2030, we embark in another journey that requires a deep comprehensive of methodologies for calculating vulnerability, making predictions and providing insightful vulnerability classifications.

Our proposal: a Vulnerability index

The key concept of assessing vulnerability of the countries was to create a new variable called ‘Vulnerability index’(VI). This calculation of this variable is based on two main approach that are taken from two innovative research.

  • Component -based Approach6:

As we organized our variables into three main components— Exposure(S), Sensitivity(S) and Adaptive Capacity (AC), we were seeking to calculate the vulnerability index by identifying the vulnerability of each component separately and than summing them up as illustrated in the figure. To achieve this, we assign weights to each variable attributed to one of these components. The weights represent the relative importance of each variable in the vulnerability index calculation.

We used two methods for assigning the weights: Equal weights method, where each variable is considered equally important and the Principle component Analysis (PCA) method, which involves mathematical techniques to capture the most critical information presenting in our data in a smaller set of components, then assigning weights based on the variables’ contribution to the first principal component. This dual-weighting strategy results in two different vulnerability indices: Equal -weights Vulnerability and Principle Component Analysis (PCA)- weights Vulnerability.

  • Entropy- Based Approach7:

In contrast of the component-based approach, entropy-based approach simplifies the calculation of the Vulnerability Index by considering all the variables together. Measuring uncertainty and information content. The idea is to measure the uncertainty or information associated with each variable. This unique perspective on vulnerability, has a pivotal role in emphasizing variables that offer more certain and informative signals. We ended up after this approach, having Entropy-weights Vulnerability Index.

Making predictions

Having The three main Vulnrability indexes: Equal -weights Vulnerability and Principle Component Analysis (PCA)- weights Vulnerability and Entropy-weights Vulenrability, and recognizing the unique trajectories each country has followed, we decided to delve into the next phase: Prediction. In this step, we aim to predict our three vulnerability indices until the year 2030 by looking into the patterns and trends for each country. To achieve this, we used the ARIMA model, known as its suitability in short term-forecasting and capability in capturing temporal patterns8.

ARIMA model performance: negligible error values for all 3 indices

In order to evaluate the performance of the ARIMA model in making predictions for each of our vulnerability indices, we used the MEAN SQUARED ERROR (MSE) and MEAN ABSOLUTE ERROR (MAE) for evaluating our results. Thus, after exploring the results from the MSE measure from the figure below, we notice that the Entropy and PCA methods for calculating the vulnerability have a better performance than Equal Weights method. However, we can see that for all of those methods, we can consider that the error values are practically negligible.

Providing Vulnerability Classification

In this step, we looked forward to classify the countries based on the predictions’ values of each of their vulnerability indices. This involves categorizing countries based on their index values using the Percentile method. Countries below the 25th percentile of their vulnerability index is considered as Relatively non-vulnerable, those above the 75th percentile are considered as Relatively vulnerable , and the rest fall into Neutral Category. This classification provide us with a list of vulnerable countries for both 2020 and 2030 across all indices.

The figures above represent the vulnerable countries we got after extracting the common vulnerable countries from the classifications results of the three vulnerability indices. The countries in brown are the countries that remain vulnerable from 2020 to 2030, the red countries are the new countries that turn into vulnerable in 2030 and the green one is the country that improves its status from vulnerable to neutral by the year of 2030.

To see how the vulnerability index and the countries’ ranking have changed over years, we made an animated bar chart race to illustrate it. You can click here.

Turning Data into Action

As we navigate the impacts of global warming on agriculture, our journey has revealed insights into vulnerability across nations. We got a list of 24 vulnerable countries in 2020 and a list of 27 vulnerable countries in 2030 in which there are some countries that are going to be vulnerable in 2030 such as India, Nigeria, Tanzania and one country that will improve its status by the year of 2030: Brunei. With this information, we propose some strategies to the NGOs to take specific actions to support those countries indeed.

For those countries that remain vulnerable until 2030, NGOs can take some actions to improve their status by developing and implementing sustainable agriculture practices. This includes promoting efficient water management, soil conservation, and the adoption of climate-resilient crop varieties.

Countries that are going to be vulnerable by the year of 2030 need preemptive strategies. NGOs can collaborate to establish early-warning systems, support climate-smart agricultural practices, and facilitate knowledge exchange between nations that have successfully mitigated vulnerabilities. Moreover, NGOs can work on some factors in the Adaptive Capacity Components to avoid vulnerability like expanding cultivated areas, supporting population control measures, and boosting total production through research and innovation.

While our findings provide a valuable insights, acknowledging limitations is key. Expanding datasets, incorporating subjective insights, and focusing on specific crop vulnerabilities are our directions for future exploration. So let’s turn these improvements into actionable steps for a resilient and sustainable agricultural future.

  1. FAO AQUASTAT Dissemination System ↩︎
  2. FAOSTAT Temperature change on land ↩︎
  3. OURWORLDINDATA Crop Yields ↩︎
  4. Duong Thi Loi, Le Van Huong, Pham Anh Tuan, Nguyen Thi Hong Nhung, Tong Thi Quynh Huong, Bui Thi Hoa Man, An Assessment of Agricultural Vulnerability in the Context of Global Climate Change: A Case Study in Ha Tinh Province, Vietnam, 2022 ↩︎
  5. Lotten Wirehn, Åsa Danielsson, Tina-Simone S. Neset, Assessment of composite index methods for agricultural vulnerability to climate change, Journal of Environmental Management 156 (2015) 70-80, 2015. ↩︎
  6. Lotten Wirehn, Åsa Danielsson, Tina-Simone S. Neset, Assessment of composite index methods for agricultural vulnerability to climate change, Journal of Environmental Management 156 (2015) 70-80, 2015. ↩︎
  7. Leifang Li, Renyu Cao, Kecheng Wei, Wenzhuo Wang, Lei Chen, Adapting climate change challenge: A new vulnerability assessment framework from the global perspective, Journal of Cleaner Production, 2019. ↩︎
  8. https://machinelearningmastery.com/arima-for-time-series-forecasting-with-python ↩︎

Réduire la criminalité à New York avec la planification urbaine, c’est possible ?

Par Antoine PERRIN-DELORT, Daniel TERAN FERNANDEZ, Emmanuela TERTULIANO MOREIRA DE SOUSA, Julien BONTEMPS élèves ingénieurs du parcours Data Science à IMT Atlantique.

Le point de départ de notre enquête

Avec une population dépassant les 8 millions d’habitants, New York City se positionne parmi les villes les plus influentes en Amérique du Nord. Ville dynamique et en perpétuelle mutation, des réglementations ont été instaurées, restreignant le port d’armes à feu dans certaines zones. Néanmoins, ces mesures suscitent des débats au sein de la sphère politique de New York.

Cependant, malgré les restrictions, le nombre élevé de fusillades persiste au sein de la ville, avec plusieurs centaines d’incidents recensés au cours des dernières années. De plus, la constante évolution de la ville rend la planification urbaine de plus en plus complexe au fil du temps. Face à cette réalité, la problématique qui se pose est la suivante :

Peut-on améliorer la sécurité urbaine de New York City grâce à des initiatives d’urbanisation ?

Notre exploration de la littérature scientifique a rapidement corroboré l’existence de liens significatifs entre les crimes et les localisations, l’agencement et les types de bâtiments publics dans une zone donnée 1.

Guidés par cette idée, nous avons choisi d’apporter une solution à la problématique antérieure en exploitant nos compétences en science des données et en apprentissage automatique. L’objectif serait donc de pouvoir estimer l’impact de la construction de nouveaux bâtiments publics sur la criminalité environnante.

À la recherche d’indices

Pour répondre à notre problématique, nous sommes partis de deux jeux de données de la ville de New York. Le premier recense les fusillades dans la ville avec leurs localisations depuis 2006 et comporte un peu plus de 27 000 lignes 2. Le second nous donne accès aux plus de 30 000 bâtiments publics de la ville3 .

Nombre de tirs
Nombre de bâtiments publics

Les bâtiments sont regroupés selon 25 catégories différentes en fonction du domaine d’activité qui leur est lié : les plus nombreux sont ceux liés à l’enfance, aux transports et à la santé et les moins nombreux ceux liés aux télécommunications et à la justice. On peut observer ci-dessous quelle typologie de bâtiment est utilisée ainsi que le nombre de bâtiments de chaque type.

Répartition des types de bâtiments à New York

La tâche la plus dure à présent consiste à générer notre propre jeu de données pour établir les liens entre les bâtiments et les incidents de fusillade.

Comment lier nos indices entre eux ?

Pour cela, nous avons utilisé une approché basée sur les secteurs. Un secteur est une zone géographique dans laquelle nous recensons le nombre de chaque type de bâtiment ainsi qu’une mesure de la criminalité basée sur le nombre de fusillades.

Théoriquement, les secteurs peuvent adopter n’importe quelle forme, telle que celle des rectangles d’une grille par exemple, et possèdent une intersection qui peut être non-nulle : un chevauchement est donc possible.

Exemple de sectorisation (1304 secteurs de 1km x 1km)

Dans notre cas, nous avons utilisé des secteurs circulaires d’un rayon de 500 mètres, dont le centre est un bâtiment public de notre jeu de données Ainsi, pour chaque bâtiment nous obtenons un secteur : nous en avons donc au total plus de 30 000 ce qui sera très utile lors de l’entraînement des modèles.

La manière dont nous avons créé notre jeu de données est schématisée ci-dessous.

Méthode sectorisation circulaire
Dans le secteur centré autour de l’hôpital rouge, 5 tirs ont été tirés, dont 3 près d’une école, 1 près d l’hôpital, et 1 près du poste de police.

Sur cet exemple, nous avons additionné le nombre de tirs dans chaque secteur. En réalité, un traitement a été appliqué à ce nombre. En effet, plutôt que de parler en termes de nombre de tirs, ce qui est peu parlant – que signifierait “Placer un bâtiment ici a diminué le nombre de tirs de 2 sur 15 ans” ? – nous avons décidé de créer un indice évaluant la criminalité, basé sur le nombre de tirs.

Plus particulièrement, nous nous intéresserons à l’évolution de cet indice pour voir s’il est judicieux ou non d’implémenter un type de bâtiment public à un endroit donné : la différence entre avant et après la construction sera-t-elle positive ou négative ?

Pour cela, nous avons redimensionné la variable que nous cherchons à prédire (la mesure de criminalité) pour que ses valeurs soient comprises entre 0 et 1 de la manière suivante :

Appliquons cela à l’exemple vu précédemment. Il nous faut d’abord trouver les secteurs comportant le moins et le plus de tirs, correspondant donc respectivement à xmin et xmax de l’équation. Connaissant cela, nous pouvons maintenant appliquer la formule à toutes les valeurs.

Attribution de notre indice de criminalité à chaque secteur

Il nous semble important de mentionner pour les plus curieux d’entre vous que nous avons également choisi d’utiliser un index personnalisé de criminalité car il offre une adaptabilité et une possibilité d’affinement.

En effet, il existe par exemple des jeux de données recensant tous les crimes commis à New York 4.

On pourrait donc pousser davantage notre réflexion et notre démarche en utilisant toutes ces données en pondérant notre index par le degré de gravité du crime. A titre d’exemple, un vol pourrait compter pour un facteur de 1 et un meurtre pour un facteur de 100.

Cependant, comment pouvons-nous être sûr de l’efficacité de notre outil ?

Élémentaire mon cher Watson

Pour valider la crédibilité de notre approche, nous allons avoir recours à un critère de réussite : si nous vérifions le critère alors notre approche sera considérée comme valide.

Comme critère de réussite, nous allons procéder à une comparaison avec une méthode dite élémentaire (ou naïve) de détermination de l’indice de criminalité. Cette dernière se contente de prédire pour chaque secteur la moyenne de l’indice de criminalité. Mathématiquement, cela donne :

Si l’on reprend l’exemple précédent, l’approche élémentaire devrait prédire :


Prédiction du modèle élémentaire sur notre exemple

Comme vous pouvez le constater, cette approche, plutôt médiocre, prédit des valeurs de l’indice de criminalité assez éloignées de la réalité.

Ainsi, si nous sommes plus performants que cette méthode simpliste, nous pouvons considérer que notre approche est fonctionnelle et peut donner lieu à une application concrète.

Pour y parvenir, nous avons sélectionné plusieurs métriques caractérisant l’erreur à minimiser, à savoir la MSE (Mean Square Error), la MAE (Mean Absolute Error) et la RMSE (Root Mean Square Error) ainsi qu’une métrique expliquant la qualité de notre modèle vis-à-vis de la variance, le R2 (R-Squared).

Par conséquent, en comparant ces métriques, nous serons en mesure de démontrer la supériorité de notre outil par rapport à la méthode naïve.

Le raisonnement

Nous avons implémenté différents modèles d’apprentissage automatique de régression pour pouvoir prédire l’indice de criminalité lors de la construction d’un nouveau bâtiment afin d’estimer l’impact sur la criminalité des nouvelles constructions.

Le but est donc, avec notre modèle, d’aider à la prise de décision les responsables de la planification urbaine de la ville de New York.

Nous nous sommes notamment penchés sur des Réseaux de Neurones et des Random Forest. Finalement notre choix s’est porté sur le Random Forest pour plusieurs raisons :

  • Premièrement, les résultats obtenus se sont révélés très prometteurs.
  • Ensuite, le temps d’exécution de notre algorithme restait raisonnable.
  • Enfin, cet algorithme nous permet d’avoir une vision plus précise de ce qui se passe avec notamment la possibilité de voir quelles données influencent le plus les prédictions, contrairement aux Neural Networks.

Le tableau ci-dessous nous montre bien les résultats obtenus à travers nos différents modèles. Nous remarquons aussi par ailleurs que nous validons largement notre critère de réussite.

MétriquesRandom ForestNeural NetworkModèle Naïf
MSE0.000920.003400.02581
MAE0.015190.040140.12742
R20.964460.86806– 0.00005
RMSE0.030290.058350.16067
Comparaison des modèles: toutes les métriques d’évaluation classent le Random Forest au premier rang
Graphique montrant l’importance de chaque feature pour notre modèle Random Forest

Comment résoudre l’enquête ?

Imaginons que vous êtes un planificateur urbain et que votre mission serait de construire une maison de jeu pour enfants.

Vous hésitez fortement entre 3 localisations que vous avez identifiées comme favorables selon des critères divers et variés.

Vous souhaitez prendre en compte l’impact de cette nouvelle construction sur la criminalité environnante ?

C’est ici que notre solution intervient.

Application du modèle sur 3 localisations réelles

Nos données nous fournissent l’indice de criminalité avant la construction, puis notre modèle prédit l’indice de criminalité après la construction de la maison de jeu pour enfants. Enfin, nous observons dans la dernière colonne ci-dessus l’évolution de cet indice de criminalité. Dans le cas présent la localisation C semble être le meilleur choix d’implantation si nous regardons le problème à travers le prisme de la criminalité.

Le verdict

Comme résultat, cet outil d’apprentissage automatique se positionne comme un allié de choix dans la prise de décision pour la planification urbaine à New York City, avec des performances élevées et aussi des opportunités d’amélioration.

Les résultats de l’évaluation de notre modèle, le RandomForest, ont surpassé nos attentes initiales. Sa précision remarquable dans la mesure de la criminalité, évaluée à travers les critères des erreurs à minimiser, ainsi que les indications détaillées sur l’importance de chaque caractéristique, confèrent à notre modèle une valeur exceptionnelle.

Cependant, il est essentiel de maintenir une approche prudente dans ce contexte. La planification urbaine est influencée par de multiples facteurs et ne peut se limiter à la seule considération de la criminalité. Par conséquent, bien que notre outil soit efficace, il doit être considéré comme une assistance à la prise de décision plutôt que comme une solution autonome pour les responsables de l’urbanisation.

Prise de recul

Malgré le succès évident de notre solution, nous sommes conscients de l’existence de tendances potentiellement risquées qui pourraient émerger en cas d’utilisation inappropriée de notre solution.

La première de ces tendances est la standardisation du type de construction à travers tous les secteurs, en se concentrant sur le type de construction ayant le plus grand impact sur l’indice de criminalité. Un certain point de saturation serait alors atteint, rendant notre modèle obsolète.

La seconde tendance impliquerait un déplacement à plus ou moins long terme de la criminalité. En effet, déplacer un problème vers une autre localisation ne le résout pas réellement. Cette réalité est malheureusement largement reconnue par ceux qui s’efforcent de réduire les taux de criminalité.

Et après ?

Plusieurs pistes d’amélioration ont été identifiées.

  • Diminution globale de la criminalité : Nous pourrions aller jusqu’à suggérer des emplacements d’implémentations de bâtiments publics plutôt que de simplement comparer des emplacements suggérés par les planificateurs urbains pour tenter de diminuer globalement la criminalité à New York.
  • Généralisation du modèle : l’intégration de jeux de données provenant d’autres villes nord-américaines pourrait enrichir notre modèle, entraînant ainsi une amélioration de ses performances et rendant la généralisation à la plupart des grandes villes américaines possible.
  • Amélioration des performances : la littérature suggère des liens significatifs entre la criminalité et le mouvement de population dans un secteur donné, rendant l’accès à des données de flux particulièrement valorisant.
  • Amélioration des performances et déplacement de la criminalité : l’inclusion d’informations sur l’année de construction des bâtiments permettrait d’apporter une dimension temporelle à notre modèle, gagnant ainsi en efficacité. Ceci permettrait également de quantifier le déplacement de la criminalité en voyant l’impact historique de l’implémentation des bâtiments sur la criminalité dans la ville.

Références

  1. Urban Planning and Environmental Criminology: Towards a New Perspective for Safer Cities, Cozens, P. M. (2011) ↩︎
  2. NYC OpenData. NYPD Shooting Incident Data (Historic). Disponible sur : https://catalog.data.gov/dataset/nypd-shooting-incident-data-historic ↩︎
  3. NYC Planning. NYC Facilities Database (FacDB). Disponible sur : https://www.nyc.gov/site/planning/data-maps/open-data/dwn-selfac.page ↩︎
  4. NYC OpenData. NYPD Complaint Data (Historic). Disponible sur : https://data.cityofnewyork.us/Public-Safety/NYPD-Complaint-Data-Historic/qgea-i56i ↩︎

Trouvez la bouteille qui sublimera votre recette !

Par Sean BONNEMAINS, Hélène SAVATIER-DUPRE, Maxime BOILLOT, Jonathan ADERKAOUI, élèves du parcours Data Science.

Inscrite au patrimoine mondial immatériel de l’UNESCO, la gastronomie française tient une place spéciale dans le cœur des français. L’art du “bien boire” et du “bien manger” est ancré profondément dans nos coutumes, tant et si bien que pour de nombreux français le vin et les repas cuisinés sont indissociables : 90% des repas avec invités ont une bouteille de vin à table, 92% des français associent l’image du vin à un plat, 88% associent le vin à la convivialité et au partage,…ces chiffres de l’IFOP Vins&Société ont de quoi vous donner le tournis !

Quelques chiffres sur les relations entre vin et repas

Mais si, vu de l’étranger, tout français maîtrise cet art de vivre dès la naissance, la réalité est toute autre : plus qu’un art, être capable de proposer à ses convives un repas dont les saveurs sont sublimées par une gorgée de la judicieuse bouteille de vin que vous aurez choisi pour l’accompagner est une science. Qui ne s’est jamais retrouvé dans cette situation : vous invitez vos amis à dîner chez vous, passez de nombreuses heures à étudier les recettes Marmiton à la recherche de l’inspiration, sélectionnez LA recette parfaite, partez en courses, dénichez les ingrédients nécessaires, arrivez enfin au rayon vins de votre supermarché favori et là… c’est le drame. Vous vous retrouvez devant ce mur de bouteilles et vous n’avez aucune idée de laquelle choisir. Blanc pour le poisson, rouge pour la viande : c’est bien beau tout ça, mais ça laisse quand même beaucoup d’options. Finalement, par dépit, vous partez avec une bouteille assez chère (c’est gage de qualité) et dont le design vous aura attiré l’œil. Si vous vous reconnaissez ici, vous connaissez la suite : l’accord entre votre repas et votre bouteille a de forte chance d’être hasardeux.

Sommes nous condamnés à cette incertitude, à ce pic de stress additionnel à chaque grande occasion dont nous sommes les hôtes, nous cuisiniers amateurs n’ayant pas eu la chance de naître avec un oncle sommelier ? Peut-être pas.

Et si notre meilleur ami Marmiton venait à notre rescousse et nous suggérait la bonne bouteille pour la recette que vous venez de précieusement enregistrer dans vos favoris ?

Marmiton à la rescousse…c’est possible ?

Pourquoi diable Marmiton irait vous proposer une telle fonctionnalité ?

Tout d’abord parce que c’est une fonctionnalité qui s’inscrit parfaitement dans les valeurs de l’entreprise, à savoir plaisir, générosité, accessibilité et convivialité.

Ensuite parce que c’est une fonctionnalité innovante non présente chez ses concurrents qui potentiellement améliorerait l’expérience utilisateurs de ses clients (on est quand même pas les seuls à vouloir une telle fonctionnalité, si ?).

Enfin et surtout, parce que cela permettrait de générer de nouveaux revenus de partenariat avec des vendeurs de vins en ligne en échange de nouveaux canaux d’acquisition de clients pour eux.

Alors, pourquoi pas ?

Et techniquement, c’est réalisable ?

Comment s’y prendrait-on si l’on voulait mettre en place ce type de service ? C’est l’excellente question à laquelle nous avons essayé de répondre. Tout d’abord il faudrait mieux comprendre comment se réalisent les accords mets – vins : sur quels critères gustatifs se réalisent ils ? Quels ingrédients prennent le dessus sur d’autres ? Quel est l’impact de la cuisson des plats ? Comment caractérise-t-on les vins ? Qu’est ce qui différencie une appellation d’une autre ? …autant de questions qui restent sans réponse.

Quelques lectures plus tard, on commence à y voir (un peu) plus clair : les poissons et les viandes sont souvent l’élément décisionnaire de l’accord de vin pour un plat, ces derniers peuvent être caractérisés gustativement par leurs types de cuissons, les vins ont des caractéristiques tanniques, de fraîcheur ou encore de rondeur du fait de leurs cépages, de leur sol…

Si on peut caractériser des recettes et des vins par autant d’attributs, ne pourrait-on pas faire ressortir des corrélations qui permettent de proposer un accord pertinent pour une recette donnée ? Ne pourrait-on pas appliquer des méthodes de Data Science pour recommander ces accords mets-vins ?

Des données, des données et encore des données

Afin de vérifier ces hypothèses, il nous faut des données sur des accords mets et vins. Malgré le bien fondé de l’existence d’une telle base de données (surtout lorsque la période des fêtes approche à grands pas), il s’avère qu’il n’en existe pas. Afin de pallier ce problème, nous avons retroussé nos manches et commencé à constituer une base de données en utilisant une méthode à la limite de la légalité afin de collecter des données sur internet : le scrapping. Ces techniques, tolérées à des fins éducatives ou de recherche, permettent d’utiliser des robots qui parcourent le code des pages web afin de collecter les données qui y figurent.

Après des dizaines d’heures et quelques centaines de lignes de codes, le dataset est constitué :

  • les attributs des recettes (leur intitulé, la catégorie de plat associé et les ingrédients utilisés) sont collectés sur Marmiton,
  • ceux des vins (scores sur les goûts notamment le caractère tannique ou frais, les taux de sucre, les cépages, les appellations et leur description “sommelière” notamment) sur Nicolas et V&B,
  • et les bons accords mets vins sont tirées de l’ouvrage de Olivier Bompass, Les Vins et les Mets en 2500 Accords (on y trouve un nom de recette auquel est associé sa catégorie de plat, la typologie de vins suggérés – e.g. rouge, blanc..-, une description gustative des vins et des appellations correspondantes).

Au travail maintenant !

Data Science : du buzzword aux méthodes concrètes

Dire que l’on va appliquer des méthodes de Data Science n’apporte pas beaucoup d’informations sur la manière de modéliser et traiter le problème. Afin de recommander une bouteille de vin à partir d’une recette, nous avons envisagé différentes traductions en problèmes de Data Science : nous en détaillerons ici deux.

La première consiste à développer un système de recommandations basé sur une analogie au principe de Content-Based Filtering : une recette de notre base d’accords se marie bien à certains vins, la recette fournie par l’utilisateur est similaire à cette recette, donc potentiellement les mêmes vins pourraient lui convenir.

Première approche de système de recommandation

La seconde consiste à effectuer un apprentissage supervisé qui prend en entrée les attributs de la recette et la classifie selon le type de vin qui lui correspond le mieux (à un niveau basique sur la typologie, et pour aller plus loin sur la description gustative).

Seconde approche d’apprentissage supervisé

Ces deux approches nécessitent d’exploiter des données textuelles, notamment celles contenues dans les intitulés des recettes et dans les listes d’ingrédients. Afin de permettre aux algorithmes d’utiliser ces données, il nous a fallu utiliser des méthodes de NLP (Natural Language Processing, un champ du Machine Learning qui permet de traiter les langages) afin de les encoder sous formes de vecteurs pour pouvoir par la suite effectuer des calculs dessus. Concrètement, après un pré-processing des données afin d’isoler les termes les plus porteurs de sens des textes, il s’agit de choisir la méthode de vectorization la plus adaptée à leur contexte pour les représenter : c’est l’étape de « Word Embedding ».

Champagne…?

Les résultats obtenus avec ces deux approches sont plutôt encourageants.

Pour le système de recommandation, la mise en place d’un test d’évaluation de la pertinence des recommandations de recettes similaires pour 20 recettes nous a permis d’évaluer sur 100 points différentes méthodes de NLP appliquées aux intitulés des recettes et aux listes d’ingrédients (pour les plus curieux, la similarité entre les vecteurs est évaluée par la mesure cosinus, pour s’affranchir des problèmes de dimension variable des textes).

Les algorithmes permettant d’obtenir les meilleurs scores tout en affichant une meilleure robustesse – compte tenu des biais de notre système d’évaluation – sont ceux combinant les mesures de similarité sur les ingrédients (avec TF-IDF) et celles sur les intitulés de repas (avec des Bag of Words).

Performances systèmes de recommandation (NLP)

Pour la deuxième approche, appliqué au cas plus simple de la classification sur le type de vin (rouge, blanc, rosé ou effervescent), les algorithmes supervisés ayant montré les meilleures performances sont le Support Vector Classifier et la Régression Logistique, qui parviennent à 75% de bonnes classifications sur notre base de test.

La mise en bouteille, c’est pour quand ?

Si les preuves de concept sont encourageantes, nous sommes encore loin de voir cette fonctionnalité apparaître sur Marmiton (désolé, pour ce réveillon il faudra se creuser la tête pour ne pas fâcher Mamie). Au-delà des problématiques dues au développement de la fonctionnalité sur l’application et à l’hébergement des modèles, différentes étapes peuvent et doivent être mises en place avant de pouvoir lancer un produit.

D’un point de vue algorithmique, le système de recommandation a été évalué partiellement sur la pertinence des recettes similaires proposées mais pas sur l’accord de bouteille obtenu : l’analyse de retours d’utilisateurs permettrait de mieux apprécier la qualité de nos recommandations – et par la même occasion, l’appétence des clients pour ce type de service ! -, tout comme l’évaluation de la qualité des recommandations par un sommelier professionnel. D’autres techniques de NLP peuvent être mises en place pour améliorer la précision ou exploiter d’autres attributs de notre base de données (analyse de sentiments et d’intentions dans la description des vins notamment). Enfin, la base de données pourrait être étendue pour de meilleures performances algorithmiques : la data augmentation, en modifiant certains ingrédients mineurs des recettes, est une piste envisageable.

D’un point de vue business et juridique, selon l’appétence des utilisateurs le modèle de génération de revenus doit être pensé et des accords passés afin de se procurer les droits sur l’usage des données (le scrapping n’est pas légal à des fins commerciales). La suggestion de bouteilles de vin doit également être légalement encadrée pour éviter des accusations de “parasitisme” (une atteinte à l’image d’un produit en voulant utiliser son image de marque, par exemple ici si une bouteille de prestige est associée à un repas “banal”).

D’un point de vue éthique, enfin, la recommandation de bouteilles d’alcool peut inciter à la consommation d’alcool : il faut se conformer aux lois en vigueur sur ces questions de santé publique pour proposer les recommandations dans un format en adéquation avec celles-ci.

Bibliographie

Paris sportifs Football

Comment maximiser ses gains sur les sites de paris sportifs ?

Par Aline BENABBOU, Gaspard CANEVET, Rida ENNAMIRI et Amaury TISSEAU, étudiants du parcours Data Science de IMT Atlantique.

Né au milieu du XIXe siècle, le football est aujourd’hui le sport le plus populaire et le plus médiatisé au niveau mondial, étant pratiqué par plus de 270 millions de personnes. Ce sport met en jeu des sommes d’argent colossales avec notamment l’essor des sites de paris sportifs. En 2019, le football concentrait 2,75 milliards d’euros de mises contre 415 millions en 2012 d’après AuStade. L’appât du gain est le premier facteur de motivation pour les parieurs, qui se creusent la tête pour prédire l’issue des matchs. Mais avec toutes ces statistiques et données liées au Football, ne serait-il pas possible d’être meilleur que l’instinct du parieur à l’aide des outils de Data Science ?

Business understanding

Dans un premier temps, nous allons vous expliquer le fonctionnement des paris sportifs de football. La cote est l’élément central du pari. C’est un nombre supérieur à 1.01 qui va caractériser à la fois les gains potentiels du parieur mais aussi la certitude du pari (certitude = (1/cote)*100). En effet, lorsque le parieur va miser sur la victoire de l’équipe B, les gains potentiels du parieur seront cote(Victoire équipe B)*mise. De plus, plus la cote est élevée, plus le pari est dangereux. Prenons un exemple : 

Le Vendredi 11/12/2020 à 21h aura lieu le match St-Etienne contre Angers. Ce match comporte trois issues. Soit St-Etienne gagne, soit Angers gagne, soit les deux équipes se quittent sur un match nul.

Nous pouvons donc observer les trois cotes : 

  • cote de 2.40 pour St-etienne gagnant
  • cote de 3.30 pour le match nul
  • cote de 2.60 pour Angers gagnant

Ainsi si :

  • Vous décidez de parier 10€ sur la victoire de St Etienne, votre gain potentiel s’élève à 24€.
  • Vous décidez de parier 10€ sur le nul, votre gain potentiel s’élève à 33€.
  • Vous décidez de parier 10€ sur la victoire d’Angers, votre gain potentiel est de 26€.

Enfin,  ces trois cotes nous renseignent sur la certitude des paris. Parionssport estime que :

  • St Etienne a 42% (100/2,40) de chance de gagner.
  • Angers a 38% de chance de gagner.
  • il y a 30% de chance que les deux équipes se quittent sur un match nul.

Dans un deuxième temps, laissez nous vous expliquer comment les cotes des paris sportifs sont calculées. Pour ce faire, les entreprises de paris embauchent des bookmakers. C’est eux qui vont définir les cotes, en se basant sur des critères variés (dynamique de l’équipe, joueurs présents sur la feuille de match…) afin de caractériser la certitude du pari. Ces derniers prennent également une marge, en diminuant légèrement la cote annoncée par rapport à celle calculée. C’est ainsi que les sites de paris font leur chiffre. Cependant, les bookmakers ne sont pas les mêmes pour chaque plateforme de paris. C’est pourquoi les cotes diffèrent en fonction du site sur lequel on décide de parier. 

Une mise en situation

Paul est un fan de l’équipe de Toulouse, et mise toujours sur cette équipe sur Betclic lorsque celle-ci joue, et quelle que soit sa cote. Il croit en son équipe favorite, et se dit qu’un jour il touchera le gros lot, mais pourtant il continue inlassablement de perdre de l’argent sans savoir quelles sont ses chances de réussite.

Comment peut-il savoir pour quelle équipe parier afin de maximiser ses chances ? Pourquoi ne pas parier sur un autre site que Betclic ?

Proposition de valeur

Nous proposons aux parieurs de maximiser leurs gains sur les matchs de Ligue 1, en faisant des prédictions sur l’issue de matchs à l’aide de modèles de Machine Learning. Nous donnons ainsi au parieur une prédiction sur chaque match, ainsi que des pourcentages de certitudes sur les différentes issues. Enfin, nous comparons et présentons les cotes des différents sites de paris au parieur, afin qu’il choisisse au mieux sur quel site parier.

Comment évaluerons-nous la fiabilité de notre modèle ? 

Nous simulerons sur une saison nos gains en suivant à la lettre les prédictions de nos modèles, avec les cotes correspondantes récupérées dans un dataset archivant ces dernières (site de pari Bet365).

Et concrètement ?

a. Nos datasets

Nous utilisons plusieurs datasets. 

Les datasets initiaux concernent les caractéristiques des différents matchs de la Ligue 1 entre les saisons 1993/1994 et aujourd’hui : issue du match, issue du match à la mi-temps, nombre de tirs/tirs cadrés, nombre de corners de chaque équipe, nombre de fautes commises par chaque équipe, etc.

Avec ces datasets initiaux, nous décidons de créer une nouvelle feature dynamique d’une équipe, avec un score allant de -3 à +3. Par exemple, une équipe qui a gagné ses 3 derniers matchs à l’extérieur aura une dynamique extérieure de +3.

Également, nous prenons en compte 3 paramètres extérieurs récupérés sur d’autres sites : 

  • le budget d’une équipe par saison car, une équipe avec un gros budget aura peut-être tendance à gagner plus souvent ses matchs.
  • les scores du jeu vidéo Fifa de chaque équipe en fonction des saisons car, les équipes changent entre chaque saison. Ce score, donné par des spécialistes, est souvent une bonne approximation du niveau actuel de l’équipe. Nous utilisons les scores FIFA qui donnent les capacités offensives, défensives et de milieu de terrain des équipes. Une forte attaque contre une défense faible peut être un bon indicateur de victoire. Au contraire, deux fortes défenses avec des attaques moyennes peuvent indiquer une plus forte probabilité de match nul !
  • Le public moyen pour chaque équipe car, nous remarquons que les équipes à domicile ont tendance à marquer plus de buts. De même, les équipes extérieures sont plus sujettes à prendre un carton jaune ou rouge. Ces deux observations peuvent être expliquées par un public plus présent à domicile, qui donne son appui pour l’équipe à domicile et fait pression sur l’équipe extérieure.

b. Vers un grand nettoyage

Seuls les datasets de la saison 2007/2008 à aujourd’hui possèdent toutes les informations importantes pour trouver l’issue d’un match (fautes, corners…). Nous éliminons donc les datasets de la saison 1993/1994 à la saison 2006/2007.

De plus, entraîner nos algorithmes sur une saison x pour les tester sur la saison supérieure à x+4 n’est pas pertinent : la composition des équipes change, de nouvelles équipes entrent dans la Ligue 1 tandis que d’autres en sortent.

Nous décidons donc d’entraîner nos algorithmes sur les saisons 2015/2016 et 2016/2017  et de les tester sur la saison 2017/2018.

c. Pour une bonne préparation des datasets

Afin de pouvoir utiliser nos datasets, il faut les préparer. Nous ajoutons aux datasets initiaux les features budget, public et scores Fifa, ainsi que la dynamique d’une équipe.

Ensuite, nous modifions certaines features afin qu’elles puissent être utilisables par les algorithmes. Un exemple concret :

Nous éliminons les features « HomeTeam » et « AwayTeam » donnant le nom des équipes.

d. Sans oublier la récupération des cotes des sites de paris sportifs

Notre but final étant de permettre au parieur de maximiser ses gains, nous récupérons les cotes de plusieurs sites de paris avec du web scrapping afin de les utiliser pour vérifier la fiabilité de notre modèle.

En route vers le machine learning!

a. Un problème de classification

Qu’est ce qu’un problème de classification ? En clair, il s’agit de prédire la valeur d’un attribut (ici le résultat d’un match) à partir des valeurs de ses autres caractéristiques (résultat à la mi-temps, public présent pour l’équipe, etc).

b. Direction les algorithmes

Nous séparons notre dataset en deux : la première partie sert à entraîner nos algorithmes et la deuxième partie sert à les tester. Nous utilisons les datasets des saisons 2015/2016 et 2016/2017 pour entraîner nos modèles, et les testons sur la saison 2017/2018. 

En comparant différents algorithmes sur nos datasets initiaux, nous nous rendons compte que le Random Forest est celui qui donne les résultats les plus convenables, en termes de score mais aussi de répartition des prédictions.

Devons-nous utiliser toutes les nouvelles features ?

Nous nous rendons compte que la combinaison des features ‘budget’ et ‘public’ aux datasets initiaux donne la meilleure prédiction, avec un score moyen de 0.54.

c. Fiabilité de notre modèle

Le but est de conseiller au mieux le parieur. Pour cela, nous devons nous assurer de la fiabilité de notre modèle. Nous montrons au parieur le pourcentage de certitude de chacune des issues d’un match, lui permettant d’évaluer le taux de confiance d’une prédiction. 

Pour évaluer notre modèle, nous récoltons les cotes de la saison 2017/2018 du site Bet365 et nous simulons nos gains sur cette saison en misant 10 euros sur chaque pari.

Dans 9 cas sur 10, nous récupérons de 2 à 10% de la somme misée au total sur l’année. Mais le seul cas où l’on perd de l’argent nous montre que notre modèle n’est pas encore assez certain.

Si le projet voit le jour… 

Si le projet se concrétise, plusieurs points sont à prendre en compte. Tout d’abord il faut penser aux coûts de structure :  

  • maintenance et gestion de la plateforme et de l’algorithme de prédiction
  • contrats pour l’utilisation des données sur les équipes
  • salariés permanents
  • coûts marketing

Pour contrer ces coûts, il nous faut des sources de revenu, qui peuvent être un abonnement avec un compte pour avoir accès aux prédictions et conseils, la revente des données clients ou encore des publicités sur les sites web.

Enfin, nous devons penser aux aspects juridiques de notre projet, notamment au respect des normes RGPD car nous utilisons les données des sites de paris sportifs qui ne peuvent être utilisées à des fins commerciales.

Références bibliographiques

Qui sommes-nous ? 

Amélioration de l’organisation des centres d’appels en Inde grâce à la détection de langue

Par: Julien Marcotrigiano, Aminata SY, Parth Tripathi, Vanessa Vanderberghe

Un exode problématique

Ces dernières années, un exode rural massif a rassemblé les populations de nombreuses régions indiennes dans les grandes villes du sud de l’Inde. Cette évolution démographique a eu pour impact de faire de ces villes, qui étaient jusque-là des bastions de leur langue régionale (Kannada, Tamoul), un melting pot de toutes les langues indiennes. On retrouve ainsi dans ces villes des populations entières qui ne parlent pas la même langue et qui ont des problèmes pour s’exprimer dans la langue historique de la ville.

Dans ce contexte, les centres téléphoniques de relations clients d’une grande entreprise du sud de l’Inde sont dans l’incapacité de rediriger les appels de ses clients vers des opérateurs parlant la même langue qu’eux. Alors qu’ils utilisaient jusque-là des données géographiques pour savoir vers quel opérateur rediriger un appel. Un système inefficace aujourd’hui. C’est dans cette optique que cette entreprise cherche à développer un assistant vocal permettant de détecter la langue parlée par le client et de le rediriger vers le bon opérateur.

Un assistant vocal: pour qui ? comment ?

Dans ce cadre, nous intervenons pour Airtel, le premier opérateur de téléphonie mobile en Inde. Grâce à cet assistant vocal, le client sera directement redirigé vers un conseiller pouvant répondre à sa question dans sa langue natale.

Pour sa création, l’entreprise nous demande à partir d’un clip vocal de moins de 5 secondes sous format .wav de détecter la langue parlée par le client pour pouvoir rediriger l’appel vers le bon conseiller. L’entreprise se chargera par la suite de rediriger la personne directement vers quelqu’un qui sera familier avec son problème à l’aide d’une reconnaissance vocale du problème exposé.

Schéma illustrant le cas d’usage

La grande majorité des habitants et néo-habitants des grandes villes du Sud de l’Inde maîtrisent les rudiments de l’anglais et de l’hindi, qui sont les langues officielles de l’union indienne. L’idée est donc de demander à l’utilisateur en Anglais et en Hindi d’exposer son problème dans la langue de son choix. Airtel se charge d’envoyer les 5 premières secondes de parole du client à notre système qui devrait pouvoir analyser et détecter la langue à partir des 5 premières secondes d’audio. Après avoir détecté la langue, notre système renvoie la réponse chez Airtel qui pourra rediriger l’appel vers le bon conseiller.

Il a été convenu avec l’entreprise d’obtenir un taux de réussite supérieur à 80% pour que le système soit considéré comme satisfaisant.

Quelles données utiliser ?

Pour réaliser notre part de cet assistant vocal, nous avions besoin d’enregistrements vocaux d’Indiens. Le nombre de langues parlées en Inde étant élevé, nous avons décidé de nous concentrer sur les langues principales du sud de l’Inde. Ces dernières correspondent à celles traditionnelles du sud de l’Inde, le Kannada, le Tamoul et le Telugu, ainsi que l’Hindi (parlé par plus de 50% de la population Indienne) et l’anglais. De plus, ces cinq langues couvrent environ 99% des habitants des grandes villes du Sud de l’Inde et représentent l’intégralité des langues gérées dans les call centers.

Dans un premier temps, nous avons utilisé des données de différents datasets: Common Voice, Google Research, LibriVox, LibriSpeech et Microsoft Research.

Lors de notre projet, nous avons dû effectuer un changement de dataset car les audios provenaient de datasets différents pour chaque langue. Ils représentaient chacun des conditions d’enregistrement différentes (matériels professionnels ou amateurs, lieux d’enregistrement…). C’est ce facteur qui influe la classification et c’est ce facteur qui peut être détecté par notre modèle plutôt que la langue parlée.

Ainsi, nous avons donc testé notre modèle avec de nouveaux datasets pour les trois langues régionales provenant de la même source (Google Research). Nous considérerons donc, par la suite, les nouveaux jeux de données.

Descriptions des datasets

Après une étude des statistiques descriptives de nos données, nous remarquons que la majorité des fichiers audios dont nous disposons ont une durée entre 5 à 10s.

Graphique représentant le nombre d’enregistrements correspondant à une certaine durée pour chaque langue

LanguesDurée d’enregistrement
Anglais323 min
Tamoul424 min
Telugu341 min
Hindi173 min
Kannada458 min
Tableau synthétisant la durée d’enregistrement pour chaque langue

Graphique représentant le nombre d’enregistrements pour chaque genre (femme ou homme)

Enfin, les locuteurs sont différents et ces enregistrements concernent globalement autant d’hommes que de femmes, d’âges variés, parlant de différents sujets. Ces données sont donc très utiles dans notre cas.

Des enregistrements aux images

Afin d’homogénéiser nos différentes données audios, celles-ci doivent être mises sous le même format, les fichiers MP3 seront donc convertis en fichier WAV car c’est ce format qui est le plus utilisé pour les traitements audio. Tous les fichiers audios seront aussi échantillonnés en 8 kHz car c’est la fréquence utilisée en téléphonie.

Nous avons ensuite découpé nos fichiers audios pour ne garder que des enregistrements de cinq secondes pour correspondre à notre cas d’usage.

Enfin, en s’inspirant de certains travaux de Deep learning pour le speech-to-text, nous avons décidé d’utiliser un modèle de réseaux de neurones convolutifs qui prend en entrée une image d’un mel-spectrogramme. Un spectrogramme est une représentation visuelle du son en temps et en fréquence avec des intensités de pixels représentant l’amplitude ou l’énergie du son à ce moment et à cette fréquence. L’avantage d’utiliser des spectrogrammes par rapport aux données wav brutes est que notre analyse sera abordée comme étant un problème de classification d’image.

Image d’un mel-spectrogramme générée à partir d’un audio de 5 secondes

Ci-dessous, le nombre d’images obtenues pour chaque langue :

LanguesKannadaTeluguTamilAnglaisHindi
Nombre d’images30391478286115852081
Nombre d’images obtenues pour chaque langue

Des résultats satisfaisants?

Comme évoqué précédemment, nous avons utilisé un réseau de neurones convolutifs créé à l’aide de Keras sous Python.

Premier modèle (différentes sources de datasets)Deuxième modèle (changement de datasets)
Notre algorithme arrive à prédire la bonne langue, en moyenne, pour 94% (accuracy) des données.Notre algorithme est moins performant puisqu’il se trompe dans 18% des cas (accuracy = 0.82).
Tableau des résultats obtenus pour les deux modèles

Les matrices de confusion permettent d’exprimer les prédictions de notre algorithme par rapport à la véritable langue à laquelle appartient une image. On remarque clairement une baisse de l’efficacité du modèle avec le changement des datasets. Notre modèle semble avoir des difficultés pour différencier les trois langues traditionnelles du sud de l’Inde (le Kannada, le Tamoul et le Telugu). Cette différence d’efficacité s’explique par la grande ressemblance entre ces trois langues.

Nous avons donc joué sur les variables de notre modèle, pour améliorer sa performance. Voici les résultats du modèle final:

Notre modèle final estime la bonne langue dans 91% des cas. De plus, les résultats pour chaque langue sont supérieurs à 80%. Ces derniers respectent donc le taux fixé par l’entreprise (taux d’erreur inférieur à 20%).

Et pour la suite ?

Des améliorations sont possibles pour notre algorithme, l’entreprise Airtel pourra continuer l’entraînement de l’algorithme avec ses propres datasets. La taille du dataset peut aussi être augmentée en ajoutant un bruit de fond qui correspondrait à l’environnement d’un client qui appellerait le call center, cela permettrait d’augmenter l’efficacité de l’algorithme pour notre cas d’usage. Notre algorithme de détection de langues peut être testé sur d’autres langues indiennes (comme le Bengali, le Gujarati, le Punjabi) afin de vérifier l’efficacité de celui-ci.

Déploiement

Pour la mise en production de notre algorithme, celui-ci utilisera la voix du client afin de faire une prédiction sur la langue de celui-ci. Les lois en Inde concernant l’enregistrement de la voix des clients ne sont pas clairement définies, les entreprises peuvent enregistrer des appels de clients sans leurs consentements. Notre algorithme est donc en adéquation avec la loi indienne.

Le plomb : un enjeu sanitaire majeur aux États-Unis

Par Jérémie Sicard, Malo Gendry, Louis Dubois-Leprou, Lucas Beretti

On estime aujourd’hui, qu’aux États-Unis l’intoxication au plomb serait la cause indirecte de près de 400 000 décès. Malgré une tendance à la baisse, ce problème demeure l’une des principales causes de mortalité dans ce pays.

 Le saturnisme pouvant entraîner divers symptômes, tels que des troubles moteurs ou des troubles du comportement, est encore très difficile à diagnostiquer. Le plomb étant présent dans de nombreux composants environnementaux, la contamination affecte les individus durablement et touche particulièrement les enfants.

Afin de mieux limiter les effets de cette intoxication et de mieux en comprendre les causes, la ville de New York a levé plusieurs campagnes de dépistage d’intoxication au plomb. Afin d’être efficaces, celles-ci doivent être réalisées à grande échelle, et sont donc très onéreuses.

Notre aide à la ville de New York

Afin d’aider la ville de New York, nous avons essayé de développer deux outils d’aide à la décision. Le 1er modèle a pour but de prédire l’évolution des cas de saturnisme dans les quartiers de New York. À court terme, cet outil pourrait partiellement remplacer les dépistages massifs. Il devrait ainsi permettre à la ville de New York de concentrer ses efforts de dépistages et de soins dans les zones considérées comme les plus à risques pour la contamination au plomb.

Nous désirions aussi développer un deuxième outil permettant la compréhension des principaux facteurs d’intoxications. Nous saurions ainsi quelles sont les zones sensibles et quels sont les facteurs environnants ayant le plus d’impact vis-à-vis de cette problématique sanitaire. Sur le long terme, ceci pourrait nous permettre de proposer un plan d’actions à la ville de New York en désignant des zones prioritaires et les actions à y mener.

Les données utilisées

Notre premier travail a été bibliographique afin de recenser différents facteurs pouvant influencer la contamination au plomb chez les enfants de moins de six ans tels que la présence de traces de plomb dans l’habitation ou encore la vétusté du logement. Puis, nous avons donc trouvé des jeux de données opendata comprenant les variables citées précédemment que nous avons qualifiées de variables explicatives environnantes.

Les individus de notre jeu de données ont été caractérisés par une des zones géographiques de la ville de New York à une année donnée.

Notre jeu de données comporta alors, pour chaque individu, une valeur de la variable cible qui est la proportion d’enfants pour 1000 testés ayant une concentration en plomb de plus de 5 mcg/dL dans le sang et une valeur des différentes variables explicatives environnantes.

L’enjeu de la fusion

Cependant, l’une des principales difficultés de notre projet était l’absence d’un jeu de données exploitable directement, listant les différentes variables environnantes et les variables cibles pour chaque zone géographique et année associée.

Nous avons donc dû fusionner une dizaine de jeux de données intermédiaires afin de créer notre propre jeu de données final. Mais ceux-ci ne possédaient pas la même temporalité ni le même niveau géographique d’analyse.

Nous avons alors défini une échelle géographique qui le “community district” associé à une clé d’identification que nous avons créée : le geoID (59 à New York). Nous avons également délimité une échelle temporelle allant de 2011 à 2018.

Des données incomplètes

Une nouvelle problématique est apparue lors de la fusion des jeux de données et notamment lors du choix de l’échelle temporelle.

En effet, trois des jeux de données intermédiaires ne possédaient pas des valeurs pour chaque année allant de 2011 à 2018. Nous avons donc dû répondre à ce manque en utilisant deux techniques faisant appel respectivement à l’évolution quasi-linéaire d’une variable et à la monotonie de l’évolution d’une variable pour différents “geoID” dans le temps.

Ainsi, à ce stade, nous possédions un jeu de données global comportant 472 individus défini comme suit :

Individus

Variable cible

Variables environnantes explicatives

geoID

Année

5 mcg/dl ou plus

Nb maisons avec plomb

Proportion de maisons construites avant 1950

101

2011

2018

102

2011

2018


L’intoxication : un processus lent et localisé

La contamination au plomb étant un processus lent, ancré dans le temps, les changements ne semblent pas s’opérer directement, il y a donc un fort lien de corrélation entre la contamination au plomb de l’année actuelle et celles des années précédentes.

Pour associer la dimension temporelle à notre analyse, nous avons donc directement incorporé, pour chaque individu, la proportion du nombre d’enfants contaminés par le plomb aux années N-1, N-2 et N-3.

Quant à la dimension spatiale, les enfants new-yorkais n’étant pas cantonnés à leur propre community district, ils peuvent facilement être contaminés lors de leurs activités dans des community districts voisins, nous avons donc voulu prendre en compte le voisinage des community districts.

Nous avons alors discrétisé la ville de New York en 5 zones géographiques de même superficie et associé à chaque barycentre d’un geoID son appartenance à l’une des zones géographiques.

Deux modèles pour deux objectifs

Notre objectif était de prédire le taux de contamination au plomb d’un community district d’une année sur l’autre. Actuellement, des tests massifs sont effectués chaque année à New York, nous donnant accès aux données de contamination des années précédentes. Ces données sont majeures dans la prédiction de la contamination d’une année : ce taux n’étant pas sujet à d’importantes variations pour des années consécutives.

Cependant, si dans le futur, la ville de New York est amenée à ne plus effectuer de dépistages massifs, mais simplement un dépistage dans certains quartiers de New York, notre modèle ne serait alors plus utilisable, car nous n’aurions plus accès aux données de contamination des années précédentes.

Par conséquent, nous avons décidé de construire deux modèles de régression selon chaque cas de figure :

  1. modèle comprenant les variables explicatives environnantes et la contamination au plomb des années précédentes
  2. modèle comprenant seulement les variables explicatives environnantes

Nous souhaitons construire à la fois un modèle ayant de bonnes prédictions et qui soit facilement interprétable pour expliquer les causes de la contamination au plomb dans un quartier donné. Ainsi, des modèles tels que la régression linéaire ou l’arbre de décision correspondent à notre étude.

Performance des modèles

Nom du modèleRoot MSE (Root Mean Square Error)
Régression linéaire0.002560.93
Régression de Ridge0.002330.94
Régression de Lasso0.002340.94
Arbre de décision0.003210.89
Comparaison des modèles utilisant les variables environnantes et contamination des années précédentes

On obtient de très bon résultats sur les modèles de régression linéaire.

Nom du modèleRoot MSE (Root Mean Square Error)
Régression linéaire0.007050.47
Régression de Ridge0.007150.45
Régression de Lasso0.006900.49
Arbre de décision0.007620.37
Comparaison des modèles utilisant seulement les variables environnantes

Les résultats se dégradent considérablement par rapport au premier cas de figure. Il est intéressant de constater que notre modèle n’est plus fiable pour prédire précisément le taux de contamination, mais arrive tout de même à tirer des tendances à partir des données comme le montre l’observation de ces 2 cartes (La couleur représente le taux de personnes contaminées au plomb au-delà d’un certain seuil).

Après observation de l’impact de chacune de nos variables, on peut affirmer que la proportion de maisons construites avant 1950, la proportion d’habitations ayant déclaré des problèmes d’entretien et la proportion de maisons pauvres sont les trois facteurs qui influent le plus sur une intoxication au plomb.

Des perspectives d’amélioration

Notre projet dispose de résultats encourageants, mais ce dernier doit encore faire face à certaines limites. En effet, notre algorithme de prédiction se base trop sur les intoxications des années précédentes, ainsi si l’on veut garder de bonnes prédictions, il faut continuer le dépistage massif.

Une piste d’amélioration serait l’introduction de nouvelles variables telles que la présence de parents fumeurs ou encore la compréhension de l’anglais par la famille. De plus, l’utilisation de petits échantillons comme ceux que nous avons formés, peut limiter la détection d’associations importantes, qui pourrait réduire l’influence de certaines variables environnantes. Il faudrait donc pouvoir augmenter le nombre d’individus de notre jeu de données en se ramenant à des zones géographiques encore plus petites que celles que nous avons définies.

Automatiser le calcul des notes des joueurs dans le jeu vidéo FIFA

Par Sarah FEDOUACH, Corentine NICOLAS et Lola SPASOJEVIC

Le secteur des jeux vidéo est en pleine expansion. Les entreprises se doivent d’être concurrentielles et à la pointe de l’innovation. Parmi les jeux vidéo les plus populaires se trouve FIFA. C’est un jeu vidéo de football créé par EA Sport en 1993, une entreprise qui développe des jeux vidéo de sport en ligne. Dans ce jeu, les joueurs de football possèdent une note sur 100 qui définit leur prestation et donc leur niveau dans le jeu. Cette note est actuellement calculée à la main par 8000 bénévoles qui étudient tous les matchs de toutes les ligues chaque année et retravaillée par 200 data editors de chez FIFA.

Fig 1 : Meilleurs joueurs dans FIFA 21 (https://www.ea.com/fr-fr/games/fifa/fifa-21/ratings)

Comment rendre le calcul de ces notes plus rapide et moins cher?

Notre projet propose d’aider FIFA à simplifier le calcul des notes des 17000 joueurs qui composent le jeu en se basant sur leurs statistiques de matchs (buts, cartons, nombre de matchs sans prendre de buts…). La difficulté a été de comprendre quelles variables peuvent être utiles pour le calcul des notes et ainsi remplacer l’avis subjectif de 8000 bénévoles. Après avoir sélectionné les données pertinentes et grâce à des algorithmes de machine learning, nous pouvons prédire ces notes en fonction des performances réelles. Le produit que nous proposons serait donc directement intégré au système informatique de FIFA.

Choix du dataset et des statistiques footballistiques

Afin de construire notre modèle nous avons eu l’idée de récolter des données sur les performances réelles des joueurs mais aussi de leurs clubs. Dans un souci de simplicité, nous avons décidé de travailler uniquement sur les 5 plus grands championnats d’Europe (Premier League, La Liga, Bundesliga, Serie A et Ligue 1) et les saisons 2017/18, 2018/19, 2019/20, ce qui correspond à 45 datasets, 98 équipes et près de 2200 joueurs. A cela, on ajoute les datasets contenant les notes FIFA des années 2018, 2019, 2020 et 2021 qui vont nous permettre d’entraîner notre modèle.

Des statistiques à la prédiction de notes

Notre but étant d’obtenir un dataset par année (toutes ligues confondues), nous avons dû faire correspondre les noms des joueurs des datasets statistiques avec ceux des datasets de notes FIFA afin de les fusionner.

Les équipes de foot ne se valent … pas

Cependant, il nous paraissait important que les clubs des joueurs soient une features d’entraînement de notre modèle. C’est pourquoi nous avons dû créer un score équipe. Ce score a été créé en comparant (en termes de points et de nombre de buts) chaque club d’une ligue au premier de cette ligue. Grâce à ce score il est, par exemple, possible de comparer directement les performances du Real Madrid avec celles de Liverpool.

Regardons les données de plus près.

Nous avons étudié la corrélation de nos variables avec les notes des joueurs. Deux variables sont corrélées positivement si leur coefficient de corrélation est proche de 1 et corrélées négativement si leur coefficient de corrélation est proche de -1. Deux variables corrélées ou anti corrélées signifient qu’elles mesurent un phénomène similaire. Cela apporte du bruit et peut induire le modèle en erreur.

Fig 3 : Matrice de corrélation du dataset de la saison 2017/2018

Nous avons gardé une seule variable par groupe de variables corrélées et nos datasets finaux ont chacun 28 colonnes.
Nous avons ensuite décidé d’étudier l’influence de certaines variables par rapport aux différentes positions des joueurs sur le terrain. Quatre postes sont représentés dans notre dataset: les attaquants, les défenseurs, les gardiens et les milieux de terrain.

Fig 4 : Nombre de buts en fonction de la note
(à gauche pour les gardiens, à droite pour les attaquants)

Comme nous pouvions nous en douter, le nombre de buts n’a pas d’influence sur la note des gardiens tandis que cela est plus corrélé avec les notes des attaquants. Nous avons donc tracé les matrices de corrélation par postes pour trouver les variables qui influent le plus sur la note par poste.
Nous avons donc décidé d’établir deux modèles différents présentés ci-dessous:

Fig 5 : Présentation des méthodes de calcul des scores

Comment évaluer nos résultats ?

Nous souhaitons prédire une note pour cela nous allons utiliser des algorithmes de régression (le Random Forest, l’algorithme du plus proche voisin, XG Boost Regressor, Stochastic Gradient Descent Regressor et la régression linéaire). La métrique que nous avons choisie est la racine de l’erreur quadratique moyenne.
Notre but est de tester plusieurs modèles et algorithmes afin de déterminer ceux qui minimisent cette erreur. Nous avons décidé de vous présenter uniquement les modèles qui prennent en compte la note de l’année précédente, les autres ayant une erreur 3 fois plus élevée.

Algorithme GlobalGlobalPar poste : Forward
RandomForest1.124 1.141
KNeighbors4.0024.020
XGBRegressor1.2491.253
SGDRegressor192.19478.247
LinearRegression1.365 1.362

Concernant le modèle global, nous remarquons que le meilleur algorithme est le RandomForest suivi de près par XGBRegressor et la régression linéaire. Nous pouvions nous en douter car les forêts de décisions sont des algorithmes qui fonctionnent bien sur des petits datasets car ils utilisent la technique de Bootstraps.

Fig 7 : Étude des notes prédites en fonction des notes réelles pour le XGB Regressor
Fig 6 : Étude des notes prédites en fonction des notes réelles pour le Random Forest

Nous remarquons qu’il n’y a pas de valeurs aberrantes. Le nuage de points pour le Random Forest est plus resserré que celui du XGBoost : il fait donc moins d’erreurs.
Dans le cas du modèle par poste, les trois meilleurs modèles sont : le RandomForest, le XGBoost et la régression linéaire. Après analyse, nous pouvons tirer les mêmes conclusions que pour le modèle global.
Dans les deux cas de figure, le meilleur modèle est le RandomForest. Comparons donc les performances des modèles par poste pour ce modèle.

RMSEModèle globalModèle par poste
Defender1.1421.137
Midfielder1.1251.137
Goalkeeper1.0561.173
Forward1.1591.141

Le modèle global possède des performances supérieures au modèle par poste. Nous optons donc pour créer un modèle global. Nous supposons que le modèle par poste est pour l’instant moins efficace car nous ne présentons pas assez de données d’entraînement.

Déploiement et commercialisation

Notre produit sera intégré au système informatique de FIFA. Il permettra à FIFA un gain de temps et d’argent. En effet, les modèles mettent environ 3 secondes à faire les prédictions pour tous les joueurs. Il suffit de mettre à jour régulièrement les statistiques des joueurs dans la base de données pour avoir des notes les plus fiables possible. Ce qui est négligeable par rapport au
temps que FIFA met à coordonner les 8000 bénévoles et 200 data editors Le temps de calcul de ces notes est donc réduit. De plus, l’ajout de notre algorithme pourrait améliorer la satisfaction client grâce aux mises à jour régulières et donc conduire à une augmentation du taux de ventes.
On peut aussi quantifier le gain d’argent pour FIFA en termes de salaires économisés. En effet, FIFA économisera environ 14,5 millions d’euros.

Sélection automatique de commentaires utilisateurs pertinents

Par Yassine EL OUAHIDI, Justin GUIRAUTANE, Jean SAVARY, étudiants en Data Science à IMT Atlantique.

L’essor des « contenus utilisateurs »

Les opinions des utilisateurs quant aux services/biens proposés, par une plateforme prennent aujourd’hui une place de plus en plus importante lors de la phase de réservation ou d’achat. Selon une étude,94% des utilisateurs n’ont pas acheté un produit en ligne suite à la lecture d’avis négatifs. En parallèle, on constate une augmentation du nombre d’avis propres à un produit ou un service, ainsi qu’une grande diversité dans leur contenu.

Nombre de nouvelles reviews Google par trimestre
Nombre de nouvelles reviews Google par trimestre [https://searchengineland.com/googles-growth-in-online-local-reviews-continues-to-dominate-but-292571]
Pour un même produit, on peut observer divers axes de notations relatifs : pour des logements, on pensera notamment à la propreté, la conformité à l’annonce, etc. Les “reviews” apportent donc bien plus de détails et d’informations précises quant à l’avis vis-à-vis d’un produit/service que ne fournissent pas les notations (généralement une note de 1 à 5). Effectivement, plusieurs notes faibles peuvent correspondre à divers aspects très différents qui ont paru critiques aux utilisateurs. Par exemple, dans notre cas des logements, une personne peut être marquée par la très mauvaise localisation d’un logement alors qu’une autre peut porter une plus grande importance à la propreté. Dans les deux cas, il s’agira d’avis négatifs, dont les notes pourront être semblables, mais qui se perdront dans la masse de commentaires tous aussi disparates.
Il est d’autant plus décisif d’extraire de la valeur de ces “avis utilisateurs”. L’idée à retenir de ce projet est de générer de la valeur pour les utilisateurs à partir de données issues de ces utilisateurs, dans l’idée de construire une boucle vertueuse.

Exploiter les avis utilisateurs, oui … Mais comment ?

La difficulté première de ce projet est d’être en mesure de comparer la pertinence de deux commentaires entre eux au regard de l’intérêt d’un utilisateur. Sur quel aspect va-t-on mesurer la valeur d’un commentaire pour un potentiel acheteur ? Cette réflexion nous a naturellement amenés à la formulation de la problématique suivante :

“Comment définir une relation d’ordre au sein d’un ensemble d’avis utilisateurs relatifs à un produit donné, pour un utilisateur donné ?”

Notons l’importance de la mention « […] produit donné, pour un utilisateur donné ». L’ensemble de nos analyses et constructions de modèles porteront, comme nous le verrons par la suite, sur une simulation respectant le cadre : un produit donné pour une catégorie de produits donnée, pour un utilisateur spécifique.

Cas d’usage

« Archibald souhaite acheter un nouveau produit d’entretien ménager et réalise une recherche sur le site. À ce stade, nous recueillerons l’ensemble des produits disponibles sur la marketplace, répondant à la recherche d’Archibald. La marketplace lui proposera alors, selon son système de recommandation, un certain nombre de produits. À cet instant, après avoir analysé l’ensemble des commentaires disponibles, nous demanderons à Archibald d’indiquer par une phrase les caractéristiques, propres au type de produit qu’il recherche, auxquelles il est sensible. Suite à cela, nous calculerons via notre algorithme de machine learning, un score de similarité entre l’entrée d’Archibald et l’ensemble des commentaires disponibles pour chaque produit. Cette similarité, comme nous le verrons, prendra en compte des notions thématiques (par exemple, Archibald évoque l’odeur du produit d’entretien), mais aussi grammaticale et sémantique. À l’issue de cette brève phase, lorsque Archibald sélectionnera l’un des produits de la liste proposée, nous aurons sélectionné pour lui les 3 commentaires de ce produit les plus à même de satisfaire les critères qu’il a aura entré plus tôt. »

Avant d’être en mesure de réaliser cette « aide à la décision », via une sélection automatique de commentaires pertinents, nous devons satisfaire les besoins suivants : recueillir l’ensemble des commentaires relatifs à un produit, traiter ce texte de manière à appliquer des algorithmes de machine learning, définir une mesure sur laquelle nous comparerons deux commentaires (relation d’ordre).

Notre proposition de valeur

Une fois que nous serons en mesure de comparer divers commentaires au regard de l’intérêt d’un utilisateur, nous pourrons nous présenter comme un tiers de confiance, transparent, apportant une aide à la décision aux clients souhaitant acheter un produit. Notre apport de valeur du côté du site intégrant notre solution est l’augmentation de la satisfaction client via une navigation facilité par la lecture de commentaires sélectionnés spécifiquement. Les utilisateurs trouveront plus rapidement les informations qu’ils cherchent dans les reviews, et gagnerons du temps sur un site équipé de notre solution. Les clients seront plus fidèles au site et plus propices à consulter plus de pages. De cette satisfaction pourra suivre une hausse potentielle du taux de vente.

Plongée au cœur des reviews, l’incroyable récit de notre périple !

Choix du dataset…

Nous avons choisi notre dataset de manière à garantir l’universalité de notre produit, ie ayant pour objectif de pouvoir s’intégrer de manière rapide et simple sur tout type de site de e-commerce. Nous avons donc cherché un dataset contenant au moins les champs suivants : identifiant d’un avis utilisateur, identifiant du produit relatif à l’avis, contenu textuel de l’avis utilisateur. D’autres champs pourront être utilisés pour améliorer le produit, mais dans sa première version nous nous en tenons à cela.

Le prototype que nous avons construit est basé sur une base de données fournie par datafiniti.co.

La base de données utilisée pour mener à bien le prototype est constituée de 70260 commentaires utilisateurs relatifs à un ensemble de 600 produits différents vendus sur 14 sites.

… du site…

Étudions rapidement la distribution des commentaires en fonction du site.

On observe la nette prédominance des sites Walmart (~ 45% du total) et Bestbuy (~ 36% du total).

Étudions alors notre variable d’intérêt : le contenu textuel des commentaires : Walmart apparaît comme le site le plus intéressant pour la suite de notre projet. En effet, les commentaires sont deux fois plus longs, avec une médiane à 14 mots contre 7 pour Bestbuy. Ainsi que des catégories plus intéressantes, car plus propices à trouver des commentaires plus objectifs. Bestbuy contenant majoritairement des commentaires de produits liés à l’audiovisuel (films, musique, …) .

Pour la suite du prototype, nous avons donc uniquement sélectionné les commentaires utilisateurs relatifs aux produits vendus sur Walmart.

… de la catégorie…

Plus spécifiquement dans la catégorie des produits d’entretien ménager (« Household Essentials ») contenant environ 8 552 avis (en ayant retiré les avis en doublons).

… et enfin, du Produit !

En outre, pour l’évaluation du modèle, décrite par la suite, nous utiliserons le produit sélectionné ci-dessous. Pour rappel, comme mentionné dans la problématique, notre produit réalise une sélection de commentaires pour un utilisateur et un produit donnés.

Rentrons dans le cœur du projet : de la donnée brute à la sélection de commentaires !

Traitement des textes

La première étape, sur laquelle repose en grande partie l’efficacité des algorithmes évoqués plus tard, consiste au traitement des données textuelles des commentaires utilisateurs de sorte à les rendre « compréhensibles » par des modèles de machine learning. Pour cette phase, nous utiliserons la librairie de référence « Spacy » sous Python, connue pour ses modèles de traitements de textes certes complexes, mais bien plus performants que des modèles issus de l’autre librairie de référence « NLTK ».

Le pre-processing peut être résumé par le schéma suivant :

« Nous adorons tous la Data Science, mais encore plus les produits d’entretien ménagers » → « nous, adorons, tous, data, science, mais, plus, les, produits, d’entretien, ménagers ».

Passons ensuite à nos modèles. Dans le but énoncé plus haut – la similarité entre l’entrée utilisateur et notre base de commentaires

Comment quantifier la similarité entre deux textes ?

Une similarité entre deux textes peut-être de plusieurs types : sémantique, grammaticale, thématique ou autre. Dans notre cas, nous procédons en deux temps.

  1. D’abord en étudiant la similarité thématique. Nous extrayons les thèmes principaux de tous les commentaires du produit donné, pour ainsi pouvoir sélectionner les commentaires dont les thèmes principaux sont très proches des thèmes extraits de l’entrée utilisateur. Pour cette première étape, nous utilisons un LDA.
  2. Ensuite, en étudiant la similarité sémantique nous cherchons parmi les commentaires en sortie de notre LDA, les 3 étant le plus sémantiquement proches de l’entrée utilisateur. Pour cela, nous utilisons un doc2vec avec pour mesure de similarité, la similarité cosinus.
Etape 1. Extraction des thèmes principaux

Rapide explication du LDA (Latent Dirichlet Allocation). Le LDA fait parti des modèles d’extraction de topics ou « Topic modeling » . Ces algorithmes partent du postulat qu’il existe, au sein d’un corpus de textes, des thèmes latents. Ainsi, ces modèles attribuent à chaque texte un pourcentage d’appartenance à chacun des thèmes détectés au sein d’un corpus.

Nous appliquons donc notre meilleur modèle de LDA, entraîné sur un corpus de commentaires relatifs à la catégorie « Household Essentials », pour attribuer à chaque commentaire des coefficients d’appartenance aux 6 topics identifiés. Nous faisons de même pour l’entrée utilisateur. Les commentaires les plus similaires thématiquement (quantile 75%) sont envoyés en entrée du modèle suivant le doc2vec.

Cette étape, effectuée en amont de notre Doc2vec est primordiale dans notre calcul de similarité. Plutôt que de longues explications, voici un exemple pour mieux comprendre : (a) Si l’on utilise un Doc2vec (de même pour Word2vec) pour prédire les documents similaires à un texte contenant le mot « French », on obtiendra probablement des documents contenant « German » ou « English » , car ces mots sont utilisés dans des contextes grammaticaux similaires. (b) Si l’on utilise un LDA en amont et que l’on cherche à prédire les mots similaires à un texte contenant le mot « French » et évoquant le thème de la « nourriture », on obtiendra cette fois non plus des documents contenant « German » ou « English » mais plutôt « baguette », « vin », « boulangerie ».

Etape 2. Calcul de similarité sémantique entre textes

En sortie de l’étape précédente, nous avions donc plusieurs commentaires qui ont été sélectionnés. Ensuite parmi ces commentaires on sélectionne les 3 commentaires ayant les plus hauts scores de similarité sémantique.
Une fois que deux textes sont représentés sous forme de vecteur grâce au doc2vec, il est possible de calculer leur similarité cosinus.

Nous sommes donc à présent en possession d’une relation d’ordre !

Notre sélection actuelle n’est basée que sur ce score de similarité. Des améliorations ont bien entendu été envisagées, notamment l’ajout de features telle que la longueur du message, le nombre de verbes/adjectifs, etc. Nous avons également songé à entraîner un algorithme supervisé dont la variable à prédire est l’utilité d’un message (ie champ « ce commentaire vous a été utile ? »).

Comment évaluer notre sélection ?

Du non supervisé au supervisé

Notre modèle étant non supervisé, nous n’avons pas accès à une méthode directe permettant de l’évaluer. En effet, nous donnons un top 3 des commentaires les plus pertinents, mais il est impossible de garantir que ce sont bien ceux qu’il fallait choisir dans l’ensemble disponible. Pour pallier cela, une approche classique consiste à rendre le problème supervisé afin de pouvoir l’évaluer. Nous avons alors aléatoirement extrait 100 commentaires d’un produit donné, puis nous avons écrit 100 entrées utilisateurs. Nous avons ensuite associé à chacune des entrées les 3 commentaires que nous jugions les plus pertinents parmi ceux extraits. Grâce à cet « étiquetage » manuel, nous avons donc les entrées et les sorties du modèle qui devient alors supervisé. Finalement, nous comparons le résultat renvoyé par le modèle à celui que nous avons indiqué.

Qu’en est-il des résultats ?

21 % des commentaires sélectionnés par notre modèle sont jugés pertinents par les utilisateurs.

Comme on peut l’imaginer assez naturellement, les scores fournis plus haut peuvent être améliorés en ne considérant pas un top 3, mais un top 5 ou plus. On constate effectivement qu’en augmentant le nombre de commentaires à prédire, on a potentiellement plus de chances de choisir les bons.

Ces scores sont relativement faibles, mais il est difficile d’en conclure quoi que ce soit. En effet, la sélection de commentaires pertinents est un sujet très subjectif. Ainsi, notre test est biaisé par la personne qui a écrit et labellisé les entrées utilisateurs. De plus, notre procédure de test est appliquée sur un faible volume de données qui ne suffit pas à conclure.

Déploiement, commercialisation

Notre produit peut s’intégrer sous forme d’API au sein du site d’un partenaire. Pour faire ses preuves en utilisation, nous pouvons fournir un accès gratuit à nos services durant un période de 2 mois, période durant laquelle notre solution sera soumise à un A/B test dont l’objectif sera de quantifier l’augmentation d’indicateurs de performance utilisés par l’entreprise (le taux de conversion/vente semble pertinent). Après une période de tests, notre outil sera vendu sous forme d’abonnement mensuel, dont le tarif sera calculé sous forme d’un pourcentage du nombre de ventes réalisées.

Simulation de déploiement

Les gains potentiels grâce à notre solution sont aujourd’hui difficilement évaluables. Cependant, l’essor des plateformes d’achat en ligne nous garantit que de plus en plus de gens consommeront en ligne, et seront donc sensibles aux commentaires des autres utilisateurs. En considérant que notre modèle aura une influence sur le volume des ventes d’un produit donné, nous pouvons estimer le gain pour des plateformes à différentes échelles. Ci-dessous, un exemple avec le produit “Clorox wipes” vendu 5.99$ sur walmart.com.

Sur quels facteurs se concentrer pour réduire de manière efficace la criminalité ?

Par Victoire BONAUD, Auriane BORDENAVE, Mathura CHANDRAKUMAR et Guillaume LE GOFF, étudiants en Data Science à IMT Atlantique.

Depuis quelques années, le taux de criminalité global à New York a décliné, contrairement à d’autres grandes villes des USA. Pour autant, le taux de “hate crimes” (meurtres, viols, assauts graves) a beaucoup augmenté ces dernières années : 3,3 millions de victimes en 2018 contre 2,7 en 2015.

A la suite de ces constatations, le maire de New York, Monsieur Bill de Blasio, a lancé the office for the prevention of Hate Crimes, ou aussi appelé le MOCJ (Mayor’s office of Criminal Justice), en été 2019 afin d’empêcher ce type de crimes.

Il y a une réelle problématique concernant les stratégies à mettre en place dans le cadre de prévention contre les crimes violents.

Quel outil pour le Maire de New York ?

Pour aider le maire de New York, nous voulons créer un outil d’aide à la décision. Ce dernier permettrait de prédire l’impact de la modification de certains éléments, ou couples d’éléments, sur la criminalité pour chaque quartier de New York.

Quelles données utiliser ?

Nous avons cherché des données Open Data qui pourraient être liées à la criminalité, suite à la lecture de documents scientifiques traitant du sujet. Nous nous sommes ainsi concentrés, en premier lieu, sur des données socio-démographiques. Nous avons trouvé 7 variables d’intérêt comprenant le nombre d’habitants, le taux de personnes nées à l’étranger, le taux de pauvreté, le taux de chômage, le taux de diversité ethnique et le taux de jeunes déconnectés, par quartier de New York et par année entre 2000 et 2018.

Cependant, il est difficile pour le maire de mener des actions qui auront un impact direct sur ces variables. Comment avoir un impact direct sur la pauvreté ou le taux de chômage ?

Nous avons donc cherché d’autres sources de données qui permettaient d’avoir des renseignements notamment sur le nombre de commissariats, sur les infrastructures présentes dans différents quartiers et sur les évènements sociaux. Ce sont sur ces critères que le maire de New-York pourra influer.

Que faire de toutes ces données ?

Dans un premier temps, il s’agissait d’effectuer une préparation des données, qui a pris beaucoup de temps. En effet, le défi était de fusionner 11 bases de donnés puis de les regrouper en un seul dataset qui nous permette de répondre à notre problématique.

Le dataset final regroupe les données par quartiers et par années entre 2006 et 2018.

Pour fusionner les différents datasets, nous disposions des coordonnées GPS des événements et infrastructures. Il fallait donc faire correspondre ces coordonnées GPS aux Community District auxquels elles appartenaient. Cela a été effectué à l’aide d’une librairie Python de traitement des données géospatiales : geopandas. La ville de New-York met également à disposition des fichiers contenant les formes de chaque Community District, ce qui a permis d’effectuer l’opération.

Suite à ce travail nous nous sommes retrouvés avec le dataset suivant:

Mais la préparation des données ne s’est pas arrêtée là. En effet, notre problématique étant d’observer l’impact de certaines actions sur la variation de crime dans un quartier, nous avons décidé de faire d’autres modifications au dataset afin que notre étude soit plus adaptée à nos besoins.

Dans un second temps, nous avons donc décidé d’ajouter des colonnes qui expriment les variations de données d’une année sur l’autre plutôt que seulement les chiffres de l’année en cours. Par exemple, à partir de la colonne “Commissariats” on ajoute la colonne “Différence de commissariats” qui correspond au nombre de commissariats sur l’année étudiée moins le nombre de commissariats de l’année précédente.

Une fois toute cette base de données regroupée et afin d’avoir une première idée des influences de certaines variables, nous avons fait une première étude de corrélation. Nous avons retrouvé des corrélations plutôt intuitives et cohérentes. En temps normal ces études de corrélations permettent de supprimer les variables redondantes. Mais dans le cadre de notre modèle nous n’avons pas jugé utile d’en retirer, permettant à notre client d’avoir plus de choix de modification de données lors de la simulation de l’évolution du nombre de crimes dans un quartier.

La base de donnée finale est donc de 767 lignes par 55 colonnes.

Un problème de classification …

Plutôt que de prédire le nombre de crimes d’un quartier d’une année sur l’autre nous avons décidé de prédire la variation de crimes et de la regrouper en 3 classes : Augmentation, Diminution ou Stagnation du nombre de crimes par rapport à l’année précédente. La stagnation correspond à une variation du nombre de crime inférieure, en valeur absolue à 200.

Deux algorithmes nous intéressent tout particulièrement : l’arbre de décision et la régression logistique. En effet, ces deux algorithmes ont la particularité d’être facilement lisibles, ils ne sont pas des boîtes noires. Il est donc possible d’extraire les règles permettant de mener à la décision de l’appartenance à une catégorie ou à une autre.

Evaluation de nos modèles

Algorithme

Temps d’exécution

Précision

Aire ROC

Arbre de décision

< 1 seconde

55%

0.61

Random Forest (50 arbres)

~ 1 seconde

75.9%

0.77

Régression

Logistique

< 1 seconde

78.1%

0.51

Ainsi, l’algorithme de Random Forest est le plus performant dans notre étude (Aire ROC bien supérieur à 0.5, qui correspond à une classification faite au hasard).

De plus, il est toujours intéressant d’étudier l’arbre de décision sachant que cela nous permet d’identifier des associations de variables influençant la variation de crime dans le même sens pour aider à jouer sur les facteurs pour trouver les bonnes combinaisons de facteurs réduisant le crime.

Des scénarios prometteurs

Ainsi, nos modèles nous ont permis d’identifier des facteurs influençant la criminalité positivement et négativement. Nous avons donc simulé différents types de scénarios pour visualiser l’impact sur la criminalité.

Nous avons réalisé un premier scénario augmentant le nombre d’évènements sociaux de 30% : la criminalité diminuerait dans 3 quartiers.

Avec un deuxième scénario, nous avons cette fois augmenté le nombre d’événements sociaux de 10% et les infrastructures sociales de 2% : nous remarquons alors que la criminalité baisse dans 10 quartiers. Nous conseillons donc au maire de se concentrer en premier temps sur ces quartiers et d’y mettre en place d’avantage d’évènements sociaux.

Des améliorations sont tout à fait envisageables. Nous pourrions déterminer des associations de variables plus précis à l’avenir pour permettre la réalisation de scénarios encore plus efficaces pour la diminution du crime à New York. De plus, il serait intéressant de réaliser les modèles sur des groupes (clusters) de quartiers afin d’avoir des résultats encore plus précis selon le type de quartier. En effet, les variables n’influencent pas les quartiers de la même manière.