Aidez votre entreprise à se démarquer grâce aux arbres décisionnels

It is in your moments of decision that your destiny is shaped.” – Tony Robbins

Partie 1 – Pourquoi vouloir inclure des arbres de décision dans votre solution d’affaires?

Les arbres de décision consistent en une représentation graphique d’un parcours décisionnel. Ils illustrent les solutions potentielles ainsi que les critères de sélection lors d’une prise de décision.

Il s’agit d’un outil utilisé dans la majorité des domaines qui impliquent une prise de décision. En guise d’exemples de questions auxquelles pourrait permettre de répondre un arbre de décision, on peut penser à : quel est le traitement qu’un médecin devrait choisir pour son patient? Quel client devrait être sollicité par un courtier en assurance? Quel type de lancement de produit devrait privilégier un décideur d’entreprise?

En tant qu’être humain, l’une des plus grandes limitations à la prise de décision réside dans le fait qu’il est difficile de choisir au-delà des alternatives connues. Les arbres de décision contribuent ainsi à formaliser le processus de brainstorming et permettent d’identifier une multitude de solutions possibles en se basant sur une grande quantité de données déjà recueillies. La décision qui émerge naturellement n’est pas toujours la meilleure; s’appuyer sur des données et des faits vérifiables est parfois plus profitable que de suivre son instinct.

Pourquoi se tourner vers un arbre décisionnel?

Pourquoi gagneriez-vous à en apprendre davantage sur les arbres de décision? Pour optimiser votre temps et maximiser votre rendement! Lorsqu’un assistant virtuel utilise un arbre décisionnel, il est possible d’automatiser une portion de la réflexion au moment de prendre une décision. À l’ère numérique d’aujourd’hui, ce type de solution est de plus en plus adopté et permet aux gestionnaires de se concentrer sur des tâches à plus grande valeur et de réduire les possibilités d’erreurs. Faire le choix d’un logiciel muni d’un arbre décisionnel s’avère ainsi un élément différenciateur pour une entreprise qui lui permet de se démarquer de la compétition, en aidant, par exemple, les gestionnaires optimiser leurs opérations ou à augmenter leurs ventes.

Poursuivons!

Maintenant que vous êtes convaincus de la nécessité d’en apprendre davantage sur les arbres de décision, voici un résumé de ce qu’il faut savoir :

Un arbre de décision est en mesure de se construire par lui même lorsqu’on lui fournit un ensemble d’entrainement. Dans le domaine de l’apprentissage automatique, l’arbre décisionnel appartient donc à la catégorie de l’apprentissage supervisé. Chaque entrée que contient l’ensemble d’entrainement comprend une liste de caractéristiques et fournit également la valeur réponse que l’on cherche à prédire. C’est cette combinaison de caractéristiques / réponse qui sera utilisée pour construire l’arbre. Concrètement :

Caractéristiques                                                                                 Réponse
Nom                 Statut     Âge    Nb d’enfants   Salaire brut    A accepté notre assurance vie
M. Tremblay    Married   58       5                         55 000              Yes

On peut de cette façon maximiser le taux de réponses positives en concentrant ses efforts sur les clients qui sont le plus susceptibles d’accepter telle ou telle option, et par le fait même, optimiser son temps et augmenter ses revenus. Puisqu’un arbre est aussi précis que les données sur lesquelles il s’appuie, il est crucial que votre ensemble soit le plus juste possible.

Types d’arbres de décision

Un arbre de décision peut se déployer sous plusieurs formes en fonction des critères qui lui seront attribués. En pratique, deux grands types d’arbres se distinguent.

  • Classification : L’arbre sert à prédire la classe à laquelle appartient la donnée. La variable réponse est qualitative. Ex : Oui / Non, Acheter / Vendre / Conserver
  • Régression : L’arbre sert à prédire une certaine valeur qu’aura la donnée. La variable réponse est quantitative. Ex : 1, 10, 50 … 

Comment interpréter l’arbre de décision?

Un arbre de décision peut tout simplement être considéré comme présentant les chemins possibles d’une décision. Chaque chemin possible de l’arbre, partant du nœud initial aux feuilles, peut être envisagé comme une règle de décision.

Arbre de décision

Voici les différentes parties de l’arbre:

  • Noeuds (rectangle) : La condition à laquelle une décision est confrontée. Il s’agit des variables indépendantes.
  • Branches (flèche) : Les décisions prises à chacun des nœuds de l’arbre.
  • Feuilles (ellipse) : La variable réponse que l’on cherche à prédire. C’est la décision définitive fournie par l’arbre.

Dans l’exemple ci-haut, considérant un client marié, de 58 ans et qui a plus de deux enfants, il serait justifié de le contacter afin de lui offrir une nouvelle assurance vie.

Avantages et désavantages

Avantages

    • Simplicité : Très visuel et facile à interpréter. Offre davantage de visibilité et plus intuitif qu’un réseau de neurones, par exemple.
    • Réalisme : Imite la manière dont les humains procèdent à une prise de décision. Donne un algorithme précis que n’importe qui peut suivre.
    • Préparation rapide : Très peu de préparation et de nettoyage de la banque de données à effectuer (pas de standardisation nécessaire, de traitement de données manquantes ou de création de variables muettes). De plus, aucune hypothèse n’est nécessaire pour créer l’arbre.
    • Polyvalence : Le modèle tient compte à la fois de variables quantitatives et qualitatives.

Désavantages

    • Instabilité : Un léger changement dans les données peut causer un changement dans l’entrainement de l’arbre et une répercussion de ce changement sur la prédiction. Le fait d’avoir l’arbre le plus récent possible assure que celui-ci représente bien l’entièreté des données.
    • Statisme : Un arbre de décision n’est pas autonome s’il est laissé à lui-même (en raison principalement de son instabilité). Il doit être entretenu régulièrement, particulièrement dans les domaines changeants. Certain outils permettent toutefois l’automatisation du processus et donc, la facilitation et l’accélération de la construction d’un arbre.
    • Précision : La méthode n’est pas aussi précise sur le plan de l’efficacité de la prédiction que d’autres méthodes d’apprentissage. Il est aisé d’augmenter l’efficacité de la prédiction grâce à une forêt aléatoire d’arbres de décision.
    • Surapprentissage : L’arbre n’est pas à l’abri de la complexité et a tendance à être surentrainé, ce qui peut faire en sorte que l’arbre ne généralise pas au-delà des données d’entrainement. La meilleure manière de pallier le surapprentissage est de faire l’élagage de l’arbre.

Arbre de décision en entreprise

Un arbre décisionnel peut être adjoint à pratiquement toutes les solutions d’affaires. Que ce soit dans votre CRM, votre logiciel de transport et logistique ou encore dans votre système financier, un arbre de décision trouvera sa place et permettra avec certitude d’améliorer et de standardiser votre processus de prise de décision. Par le fait même, votre entreprise se démarquera des autres par ses performances et son efficacité.

Pour en retirer le maximum de bénéfices, il est essentiel que cet arbre de décision soit vivant et bien construit. Soyez assuré qu’Arcbees est en mesure de vous donner les meilleurs conseils et de prendre en charge vos besoins d’affaires en vous permettant de dépasser vos propres objectifs.

N’hésitez pas à nous contacter directement par courriel ou en laissant un commentaire ci-dessous. C’est avec grand plaisir que nous en discuterons avec vous. Notre prochain article vous guidera au travers de chacune des étapes pour passer d’un ensemble de données à un arbre fonctionnel. N’oubliez pas de suivre le blogue d’Arcbees pour ne rien manquer !

 

Introduction aux systèmes de recommandation

Many receive advice, only the wise profit from it.” – Harper Lee

Les systèmes de recommandation sont pour beaucoup d’entre nous des entités mystérieuses qui semblent deviner nos pensées. Pensons simplement à Netflixqui nous suggère des films, ou encore à Amazon, qui croit connaître les produits que nous devrions acheter. Depuis leurs débuts, les outils de recommandation ont été améliorés et raffinés et ils ne cessent d’enrichir l’expérience utilisateur. Bien que plusieurs d’entre eux soient des ensembles très complexes, leur fondement et leurs racines demeurent très simples. Je me suis penché sur la question afin de démystifier pour vous ces étranges systèmes.

Qu’est-ce qu’un système de recommandation?

Un système de recommandation est une forme spécifique de filtrage de l’information qui a pour but de présenter à un utilisateur des éléments qui sont susceptibles de l’intéresser, et ce, en se basant sur ses préférences et son comportement. On tente donc de prédire votre appréciation face à un élément pour ainsi vous suggérer ce que vous serez le plus en mesure d’apprécier.

Comment créer un système de recommandation?   

Bien qu’il existe de nombreuses techniques pour mettre en place un système de recommandation, j’ai choisi ici de vous présenter les trois techniques les plus simples et les plus utilisées. Tout d’abord, le filtrage collaboratif, puis les systèmes basés sur le contenu et finalement les systèmes basés sur la connaissance. Je vous présente également le principal problème des systèmes de recommandation ainsi qu’une solution à ce problème. À la toute fin, un exemple d’implémentation complète vous attend.  

Filtrage collaboratif

L’une des premières techniques utilisées et qui demeure encore aujourd’hui parmi les plus simples et les plus efficaces est le filtrage collaboratif. Ce procédé en trois étapes commence par la collecte d’information sur les utilisateurs. Puis, on forme une matrice afin de calculer des associations. Finalement, nous sommes en mesure de faire une recommandation avec un niveau de confiance assez élevé. Cette recommandation se divise en deux grandes catégories : l’une se base sur les utilisateurs et l’autre sur les items qui composent l’environnement.

Filtrage collaboratif utilisateur

L’idée derrière le filtrage collaboratif utilisateur consiste à trouver des utilisateurs qui ont des goûts similaires à l’utilisateur cible. Plus concrètement, si Jean-Pierre et Jason ont évalué plusieurs films d’une manière similaire dans le passé, nous pouvons considérer ceux-ci comme des utilisateurs semblables et ainsi utiliser les cotes de Jean-Pierre pour prédire les cotes de Jason. Par exemple, si Jean-Pierre a beaucoup apprécié les films Return Of The Jedi et The Empire Strikes Back et que Jason a également aimé le film Return Of The Jedi, alors il serait judicieux de suggérer à Jason The Empire Strikes Back. Généralement, un nombre restreint d’utilisateurs semblables à Jason est suffisant pour prédire les évaluations de celui-ci.

 

dev-recommandation-filtrage-userDans un tableau où chaque ligne est un utilisateur et où chaque colonne représente un film, il suffit de trouver les similarités entre les lignes de la matrice pour repérer les utilisateurs similaires.

dev-recommandation-matrice
Il existe cependant certains problèmes associés à ce type d’implémentation.

– Les préférences des utilisateurs changent avec le temps. Cela peut donc générer de nombreuses suggestions inappropriées.

– Plus le nombre d’utilisateurs augmente, plus il sera long de générer des recommandations.

– Le filtrage par utilisateur est sensible au Shilling Attack, qui est une façon pour certaines personnes mal intentionnées de détourner le système et de faire en sorte que certains produits soient plus recommandés que d’autres, et ce, à leur avantage.

Filtrage collaboratif objets

Le processus est simple. On calcule la ressemblance de deux éléments en se basant sur les notes données par les utilisateurs. Retrouvons Jean-Pierre et Jason qui ont tous les deux apprécié les films The Return Of The Jedi et The Empire Strikes Back. Nous pouvons donc déduire que la majorité des utilisateurs qui apprécie le premier film risque également d’apprécier le second. Ainsi, il serait pertinent de suggérer The Empire Strikes Back à Larry, qui a adoré The Return Of The Jedi.

dev-recommandation-filtrage-objets

Pertinemment, la ressemblance est calculée en fonction des colonnes plutôt que les lignes, et ce, sur la même matrice utilisateur/films vue précédemment.

Le filtrage collaboratif objets (ou items) est souvent favorisé puisque celui-ci ne comporte aucun des inconvénients du filtrage utilisateur. D’abord, les items du système (ici des films) ne changent pas, donc les suggestions seront plus pertinentes. De plus, il y a souvent moins d’éléments que d’utilisateurs, ce qui diminue le temps de traitement. Finalement, il est beaucoup plus complexe de tricher avec ces systèmes.

Système basé sur le contenu

Dans les systèmes de recommandation basés sur le contenu, ce sont les attributs descriptifs des éléments qui sont utilisés pour formuler des recommandations. Le terme « contenu » fait référence à ces descriptions. Par exemple, en regardant l’historique d’écoute de Sophie, le système remarque que celle-ci semble apprécier le genre country. Il sera donc en mesure d’ajouter plus de titres du même genre à ses recommandations. Des systèmes beaucoup plus complexes sont en mesure de détecter les cohérences entre certains attributs, et ainsi, d’augmenter la qualité des suggestions. Notamment, le Music Genome Project catégorise chacune des chansons en 450 attributs différents; c’est de ce projet qu’est né le site d’écoute musicale Pandora.

Système basé sur la connaissance

Les systèmes de recommandation fondés sur la connaissance sont particulièrement utiles dans le cas d’articles qui sont rarement achetés. On parle ici de maisons, d’automobiles, de services financiers et même d’objets de luxe. Dans de tels cas, le processus de recommandation souffre souvent d’un manque d’évaluation des produits. Il n’utilise alors pas les évaluations des utilisateurs, mais sera plutôt effectué sur la base des similitudes entre les exigences des clients et des descriptions d’articles ou grâce à l’utilisation de contraintes spécifiant les exigences des utilisateurs. Cela rend ce type de système unique puisqu’il permet aux utilisateurs de spécifier explicitement ce qu’ils veulent. En ce qui concerne les contraintes, si applicables, elles sont le plus souvent implémentées par les experts du domaine. Par exemple, lorsque l’utilisateur spécifie clairement que le prix de la maison recherchée ne doit pas dépasser X, le système doit prendre en considération cette spécification.

Le problème de démarrage à froid

L’un des problèmes majeurs des systèmes de recommandation est que le nombre d’évaluations initialement disponibles est relativement faible. Que faire lorsqu’un nouvel utilisateur n’a pas encore noté de films, ou lorsqu’un nouveau film est ajouté au système? Dans de tels cas, il devient plus difficile d’appliquer les modèles traditionnels de filtrage collaboratif. Bien que les méthodes qui s’appuient sur le contenu et sur les connaissances soient plus robustes que les modèles collaboratifs, lorsqu’il s’agit de démarrage à froid, ces contenus ou connaissances pourraient ne pas toujours être disponibles. Par conséquent, un certain nombre de procédés spécifiques comme les systèmes hybrides ont été conçus. Ils visent à remédier au problème du démarrage à froid dans le contexte des systèmes de recommandation.

Les systèmes hybrides

Notons que les différents types de systèmes présentés ont tous des forces et des faiblesses et se basent sur différentes données pour générer des suggestions. Certains systèmes de recommandation, comme ceux qui s’appuient sur la connaissance, sont plus efficaces dans les environnements de démarrage à froid, où la quantité de données est limitée. D’autres systèmes de recommandation, comme les méthodes collaboratives, sont plus efficaces lorsque plusieurs données sont disponibles. Dans de nombreux cas, alors que les données sont très variées, nous avons la flexibilité d’utiliser différentes méthodes pour la même tâche. Nous pouvons donc combiner plusieurs techniques afin d’améliorer la qualité du système dans son ensemble. De nombreuses techniques de combinaisons ont été explorées, parmi lesquelles :

  • Pondéré : un poids différent donné aux recommandations de chaque technique utilisée afin de favoriser certaines d’entre elles.
  • Mixte : un seul ensemble de recommandations, sans préférences.
  • Augmenté : les suggestions d’un système sont utilisées comme entrée pour le suivant, et ainsi de suite jusqu’au dernier.
  • Commutation : choix d’une méthode au hasard.

L’une des utilisations les plus célèbres d’un système hybride est celle du Netflix Prize, de 2006 à 2009. Le but poursuivi était d’améliorer les suggestions de l’algorithme Cinematch de Netflix d’au moins 10 %. L’équipe Bellkor’s Pragmatix Chaos a remporté le prix d’un million de dollars avec sa technique composée de 107 algorithmes différents et a réussi à améliorer de 10.06% les suggestions de Cinematch.

Et l’intelligence artificielle dans tout ça?

Les systèmes de recommandation sont couramment utilisés en lien avec l’intelligence artificielle. Leur capacité à fournir un aperçu global, à prédire les événements et à mettre en évidence des corrélations contribue à expliquer leur utilisation en IA. Par ailleurs, les techniques de Machine Learning sont fréquemment utilisées pour créer les algorithmes de recommandation. Par exemple, chez Arcbees, nous avons construit un système de prédiction des préférences de films qui utilise un réseau de neurones et les données de IMDb. Les réseaux de neurones peuvent effectuer rapidement des tâches complexes et manipuler facilement des données massives. En fournissant une liste de films comme entrées et en comparant la sortie avec la note de l’utilisateur, le réseau peut apprendre par lui-même la règle permettant de prédire les évaluations futures d’un utilisateur spécifique.

Les trucs de l’expert

Tout au long de mes lectures, j’ai remarqué deux grands conseils qui reviennent toujours parmi ceux prodigués par les experts du domaine. Le premier consiste à faire reposer les recommandations sur les items que les utilisateurs paient. Lorsqu’un utilisateur est prêt à payer, on peut être certain que l’évaluation qu’il fournira sera beaucoup plus juste et fidèle. Deuxièmement, il est toujours préférable d’avoir un plus grand nombre d’algorithmes que de raffiner un seul algorithme. Le système de Netflix en est un bon exemple.

Implémentation d’un algorithme de filtrage collaboratif objets

Le code qui suit montre à quel point il est facile et rapide de mettre en place un système de recommandation par filtrage collaboratif item. Le langage utilisé est Python et j’utilise les librairies Pandas et Numpy qui sont parmi les plus populaires dans le domaine. Les données utilisées sont des évaluations de films et l’ensemble est disponible sur le site MovieLens.

Étape 1 : Trouver des films semblables à un film

  1. Lire les données
  2. Créer la matrice utilisateur X films
  3. Choisir un film et générer la valeur de similitude (corrélation) de tous les autres films avec le film choisi
  4. Enlever les films peu populaires et qui peuvent générer des recommandations inadéquates
  5. Extraire les films populaires et semblables au film cible

Étape 2 : Faire des recommandations à un utilisateur en s’appuyant sur toutes ses évaluations

  1. Générer la valeur de similarité entre chaque paire de film et en gardant seulement les plus populaires
  2. Générer la liste des suggestions pour chacun des films contenus dans la liste des évaluations de l’utilisateur cible (ici l’utilisateur numéro zéro)
  3. Regrouper les films identiques en additionnant leur score
  4. Conserver seulement les films qui n’ont pas encore été visionnés par l’utilisateur

Comment aller plus loin ?

Dans le cas présenté plus haut, la librairie Panda et notre simple processeur suffisaient pour pouvoir travailler sur un ensemble de données de MovieLens. Cependant, il se peut que ce ne soit pas optimal pour des ensembles plus gros, et donc, vous chercherez probablement à vous tourner vers Spark ou MapReduce pour rendre l’exécution plus rapide.

J’espère bien avoir réussi à vous faire voir qu’il n’y a rien de compliqué dans le fait de mettre en place un système de recommandation simple et efficace. N’hésitez pas à commenter et à poser vos questions. Vous pouvez aussi me contacter directement par email.