Chez Chronotruck, nous cherchons à trouver le meilleur transporteur pour chacune des expéditions de marchandises grâce à notre technologie.
Dès le départ, le cœur du projet reposait sur plusieurs algorithmes, qui cherchaient à apporter un maximum de valeur aux utilisateurs de la plateforme.
L’équipe data de Chronotruck se charge de vous présenter une introduction au machine learning puis une de ses applications chez Chronotruck à travers notre algorithme de matching.
Introduction au Machine Learning

Aujourd’hui, les médias et les start-ups aiment nous inonder de buzz-words autour de l’Intelligence Artificielle (IA).
Commençons par définir ces termes, en partant du concept général jusqu’à des exemples de modèle de Machine Learning : jusqu’aux exemples ?
Qu’est-ce que l’Intelligence Artificielle ?
Tout simplement une technologie qui cherche à reproduire un système plus ou moins intelligent. Attention, comme vous allez le voir avec les exemples qui vont suivre, et n’en déplaise à Elon Musk, il y a très peu de chance que ces systèmes nous gouvernent un jour. Pour le moment, ce sont des systèmes relativement simples, résolvables facilement par les humains.
Qu’est-ce que la Data Science ?
La Data Science est la science autour de l’utilisation des données, parfois extrêmement nombreuses (on parle alors de « Big Data »). Le but est d’en extraire des informations intelligibles, et transcriptibles en actions concrètes.
Qu’est-ce que le Machine Learning ?
Le Machine Learning correspond à des méthodes d’apprentissage statistiques. Les algorithmes vont apprendre à l’aide de données passées puis faire des prédictions afin d’aider à la prise de décision des équipes métiers.
Qu’est-ce qu’un réseau de neurones ?
Un réseau de neurones est un modèle de Machine Learning composé d’un ensemble d’éléments simples qui, combinés, produisent un raisonnement complexe. Ce type d’algorithme est schématiquement inspiré du fonctionnement des neurones du cerveau.
Qu’est-ce que le Deep Learning ?
Le Deep Learning est un type de réseau de neurones qui permet de résoudre des problématiques plus complexes. On retrouve le Deep Learning en Computer Vision (Les voitures autonomes Tesla par exemple) ou encore en Natural Language Processing (Google, par exemple, investit beaucoup dans l’apprentissage et la compréhension des langues dans leur contexte).
Enfin pour finir, rappelons qu’un algorithme est un ensemble de règles permettant de résoudre un problème. Si on prend comme exemple une recette de cuisine, l’algorithme correspond à toutes les étapes nécessaires pour finaliser la recette.
Règles et fonctionnement du Machine Learning
Revenons donc au sujet principal de l’article : le Machine Learning. Les algorithmes créés vont permettre, soit de faire des prédictions, soit d’être assez intelligents pour prendre des décisions par eux-mêmes.
Prenons l’exemple d’un feu rouge pour comprendre ce qu’est un algorithme de Machine Learning. Dans un algorithme classique en informatique, pour reconnaître un feu rouge, on regarderait les pixels d’une images pour analyser sa couleur (rouge), sa forme (ronde), jusqu’à arriver à la conclusion que c’est un feu rouge.
Dans un algorithme de Machine Learning, on va procéder autrement : on va donner à l’algorithme une multitude d’images de feux rouges en lui indiquant celles qui contiennent un feu rouge et celles qui n’en contiennent pas, et il va apprendre tout seul ce qu’est un feu rouge, sans aucune autre instruction préalable.
Dit autrement, l’algorithme va réussir à trouver des similitudes, des règles communes dans les données d’apprentissage (ici le feu rouge) et va pouvoir les appliquer à de nouvelles données entrantes.

Une fois que l’algorithme commence à fonctionner, on teste notre modèle sur des exemples qui n’ont pas été utilisés pour l’entraînement. Ceci est fondamental pour éviter le sur-apprentissage, phénomène classique en Machine Learning, qui consiste à trouver un modèle qui soit très spécifique aux données d’entraînement et fonctionne moins bien ensuite en conditions réelles, avec de nouvelles données.
Les modèles d’apprentissage statistique en Machine Learning
Pour apprendre et ressortir les données voulues, il faut choisir un modèle d’apprentissage.
Il existe deux grandes familles de modèle :
- L’apprentissage supervisé : On donne à notre algorithme des données avec un résultat ( =donnée de sortie) , souvent appelé label, afin qu’il apprenne des règles d’association . Par exemple, une banque d’images en précisant que ce sont des feux rouges.
- L’apprentissage non supervisé : On regroupe des éléments entre eux, sans les labelliser, et c’est l’algorithme qui va trouver des caractéristiques communes.
Intéressons nous d’un peu plus près aux algorithmes de classification supervisée, auquel appartient notre algorithme de matching.
Les catégories du modèle d’apprentissage supervisé
- Classification : On veut que notre algorithme puisse catégoriser nos données (on dit qu’il va donner une valeur discrète à la donnée).
C’est l’exemple que nous prenons depuis le début, avec des images qui peuvent montrer un feu rouge, un chien, un chat ou autre. Nous associons un label correspondant à une catégorie, à chacune de nos données. Une fois l’algorithme entraîné, il aura appris à classifier seul la donnée : dire s’il s’agit d’un feu rouge ou non.
On souhaite donc associer une catégorie à chacune de nos données d’entrée dans un problème supervisé de classification. - Regression : On veut que notre algorithme nous renvoie un nombre (= une valeur continue) plutôt qu’une catégorie. Par exemple, suivant plusieurs critères définis autour du style et du niveau de vie, un algorithme pourrait nous donner une estimation d’espérance de vie.
On souhaite donc associer une valeur numérique continue aux données d’entrée dans un problème supervisé de régression.
Exemple d’un modèle de classification : l’arbre de décision
L’arbre de décision est un des modèles les plus classiques en classification des données. C’est un algorithme qui représente un ensemble de choix sous la forme d’un arbre. Ici, un exemple des chances de survie lors de la catastrophe du Titanic, selon plusieurs critères :
Exemples de modèle de base de régression : la régression linéaire
La régression linéaire consiste à déterminer la droite qui passe le plus près de chacun des points.
On peut ensuite prédire le poids en fonction de la taille d’un nouvel individu. Il s’agit bien sûr d’un exemple schématique.
Chronotruck et le Machine Learning
Les algorithmes de Chronotruck
Maintenant que nous avons fait une introduction générale au Machine Learning, rentrons un peu plus dans le détail avec ce que nous faisons chez Chronotruck. Quatre algorithmes sont au coeur de notre technologie :
- Pricing : qui détermine le prix des expéditions sur un ensemble de critères donnés ;
- Simplexity, qui détermine la probabilité qu’une expédition de transport parte automatiquement, sans intervention d’un affréteur en interne ;
- Dispatch, qui envoie les expéditions aux transporteurs selon un ordre prédéfini, pour maximiser les chances de réservation automatique;
- Matching, qui est une brique du dispatch et qui score les transporteurs, de 0 à 100. 100 étant un transporteur qui a un maximum de chance de réserver l’expédition.
Comprenons l’algorithme de Matching
Attardons-nous sur l’algorithme de Matching, qui est très important pour assurer un taux de réponse et de réservation important des offres sur la plateforme :
Sur le principe, il s’agit d’un système de recommandation, comme on peut en retrouver sur Amazon ou Netflix (recommandation d’articles ou de séries en fonction de l’historique et d’autres critères
Concrètement, lors de la dépose d’une expédition, nous allons attribuer un score aux transporteurs susceptibles de réserver l’expédition. Les transporteurs que nous allons classifier sont:
- Les transporteurs ayant une recherche enregistrée sur ce type d’expédition
- Les transporteurs ayant effectué ce trajet ou le trajet inverse
- Les transporteurs domiciliés dans le département de départ ou d’arrivée. Si mon lieu de chargement est dans la Creuse, il y a des chances pour qu’un transporteur domicilié dans cette région soit intéressé par la marchandise.
Le but final de l’algorithme est de trouver les meilleurs transporteurs pour chacune des expéditions, ceux qui sont le plus susceptibles de la réserver.
L’application est ensuite double :
- augmenter le taux de réservation automatique des offres (sans action humaine)
- aider les affréteurs en leur indiquant la liste des transporteurs les mieux notés pour chacune des expéditions.
Est-ce un algorithme supervisé ou non supervisé ?
L’algorithme est bien un algorithme d’apprentissage supervisé. Les données (expéditions passées et leurs transporteurs associées) ont bien un label soit l’expédition est réservée (1), soit elle ne l’est pas (0).
Ici, nous sommes bien dans un modèle de classification (et non de régression).
Création et utilisation de l’algorithme
Catégorisation du succès et de l’échec
Pour créer et entraîner le modèle, nous allons créer un dataset d’entraînement, composé de nombreuses expéditions. Un dataset est un ensemble d’individus ou de lignes (en l’occurrence des expéditions associées à des transporteurs) ayant différentes caractéristiques, que l’on appelle variables. A chacune de ces lignes, on associe un label ou catégorie. Dans notre dataset, comme précisé plus haut, il y a deux labels, le 0 et le 1. Comment les caractériser ?
- Les 1 (donc les succès) sont faciles à déterminer : nous pouvons prendre toutes les expéditions ayant déjà eu lieu chez Chronotruck, pour lesquels un transporteur a réservé l’expédition.
- Les 0 sont plus complexes : nous devons associer à des expéditions ayant réellement eu lieu sur Chronotruck des transporteurs qui ne les ont pas réalisées (= transporteurs potentiels). On va les choisir au hasard mais en prenant garde que les couples “expéditions-transporteurs” choisis ne soient pas trop irréalistes.
Création des variables de l’algorithme
Maintenant que nous avons associé une catégorie à chacune de donnée (succès ou échec), nous allons chercher des variables qui peuvent avoir une influence sur le résultat. Pour notre exemple, les variables peuvent être :
- Les recherches enregistrées sur notre plateforme (Chronotruck permet aux transporteurs de créer des recherches de fret sur des axes, suivant plusieurs critères.).
- L’historique du transporteur ce ce trajet
- L’adresse de dépôt du transporteur..
- …
Chacune des variables saisies va avoir son propre poids dans l’algorithme. Ce poids est susceptible d’évoluer dans le temps, suivant les réservations. Par exemple, si l’on se rend compte que les transporteurs qui réservent le plus souvent sont ceux dont l’adresse est proche du lieu de chargement, l’algorithme va surpondérer cette variable.
Le modèle n’est pas très complexe. Ce qui est réellement compliqué, c’est de bien comprendre le métier pour trouver toutes les variables pertinentes pour noter les transporteurs potentiels sur leur capacité à réserver l’expédition. Ceci se fait en collaboration constante avec les affréteurs qui connaissent le métier.
Plus généralement, la connaissance du métier et l’aide apportée par des experts sont des conditions fondamentales à la réussite d’un modèle de machine learning sur des données réelles.

Le processus d’entraînement consiste à optimiser des métriques permettant de déterminer si notre algorithme est performant. Par exemple on va chercher à savoir sur un échantillon de test si l’algorithme va attribuer un bon score à un transporteur ayant effectivement réservé l’expédition.
Utilisation de l’algorithme par les équipes métiers
Une fois que nous avons prédit la probabilité de réservation d’un transporteur, notre algorithme de matching peut être utilisé de deux façons, comme vu plus haut :
- soit via l’algorithme de dispatch, qui va proposer l’offre de transport aux transporteurs avec la plus grande probabilité de réservation
- soit via les affréteurs, qui vont utiliser cette liste pour contacter les meilleurs transporteurs pour faire partir le transport.
Encore une fois, nous ne pouvons que souligner la place de l’humain autour de cet algorithme :
- En amont, pour la constitution du variable. C’est ici la valeur principale de l’algorithme : intégrer un maximum de métier pour choisir les variables.
- En aval, pour aider les affréteurs à trouver le bon transporteur pour faire partir des lots. Il faut également préciser que notre algorithme appelé « simplexity » note les expéditions suivant la difficulté à les faire partir. Nos affréteurs travaillent donc uniquement sur les expéditions dites « difficiles », et avoir cette liste de transporteurs potentiels les aide énormément dans la prise de décision. Ils peuvent ainsi se concentrer sur des affrètements plus complexes, à plus forte valeur ajoutée.
Conclusion sur le Machine Learning
Cet article et la présentation de nos algorithmes, plus précisément notre algorithme de Matching, permettent de mettre en avant plusieurs aspects du Machine Learning :
- Le métier est donc la partie la plus importante de l’algorithme : c’est ici que ce situe la complexité de l’algorithme et la valeur ajoutée du data scientist. Il est là pour comprendre les besoins de ses collègues, et réussir à transcrire ces besoins dans des variables pour pouvoir concevoir les algorithmes.
- Les algorithmes ne cherchent donc pas à remplacer les hommes, mais à les assister pour qu’ils puissent se consacrer aux problématiques sur lesquelles ils ont le plus de valeur ajoutée. C’est en ce sens que les algorithmes et le Machine Learning transforment les métiers.
Si le sujet vous intéresse, nous vous invitons à nous poser des questions en commentaire, nos Data Scientists se feront un plaisir d’y répondre.
Enfin, si vous souhaitez en savoir plus sur Chronotruck, n’hésitez pas à visiter notre site ici.
Laisser un commentaire