Waiter, est une plateforme SaaS permettant aux restaurateurs, dans un environnement social et grâce à un algorithme de matching, de recruter le candidat qui correspond à leurs besoins.

Notre but est d’améliorer la communication entre recrutés et recruteurs en déterminant les caractéristiques d’un message pertinent, lu par le candidat.

INTRODUCTION – LE PROCESSUS DE RECRUTEMENT CHEZ WAITER

D’abord, l’établissement recruteur s’inscrit sur Waiter, en y ajoutant toutes les informations nécessaires ( nom, adresse, siret, photos, description, spécialités etc…), afin de donner envie aux candidats présents sur la plateforme d’y postuler.
Puis le restaurant poste son offre d’emploi avec des critères et des filtres, comme par exemple : “Je cherche un limonadier ayant 3 ans d’expérience, sachant porter au plateau et parlant anglais”.

Lorsque l’offre est publiée, les candidats vont postulé à l’offre d’emploi, et le professionnel recevra les candidatures avec un pourcentage de comptabilité à l’offre, il pourra alors accepter ou refuser les candidats.

Une fois que le restaurateur accepte le profil du candidat, une messagerie instantanée lui permet de le contacter afin de poursuivre le processus de recrutement.

LA PROBLEMATIQUE

Dans le marché de la restauration et de l’hôtellerie, les candidats sont assez volatils, les messages des recruteurs restent parfois sans réponse.

L’idée est donc de prédire si le message du recruteur a été lu ou non, et d’en déduire les caractéristiques des candidats dans ces deux cas de figure, afin d’améliorer l’expérience du recrutement et notamment de mettre en place des éléments incitatifs qui pousseraient davantage les candidats à répondre aux restaurateurs.

LA METHODOLOGIE

Pour répondre à cette problématique, j’ai extrait quatre datasets (utilisateurs, compétences, métiers et langues) de la base de données Waiter, constitués de douze variables explicatives (prénom, nom, genre, dates d’anniversaire, compétences, métiers et langues des candidats) et d’une variable quantitative (taux de complétion du profil). Je vais construire un modèle de machine learning, le classifieur Naive Bayes, très utile pour les problématiques de classification de texte.

LE CHOIX DU MODELE

Je cherche à prédire une valeur discrète, c’est-à-dire qu’elle peut prendre deux valeurs possibles : oui, le message du restaurateur a été lu ou non il ne l’a pas été. Je suis donc confrontée à une problématique de classification. J’utiliserai Naive Bayes comme algorithmes de classification

Le classifieur Naive Bayes se base sur le théorème de Bayes, fondé sur les probabilités conditionnelles (probabilité qu’un évènement se réalise sachant qu’un autre évènement s’est déjà produit). D’une manière générale, ce théorème se base sur plusieurs variables explicatives. Une des hypothèses principales est de considérer que ces variables sont indépendantes les unes des autres.

PRÉPARATION ET NETTOYAGE DES DONNÉES

Dans un premier temps, j’ai transformé les datasets « compétences », « métiers » et « langues » en format large (modification des lignes en colonnes) pour pouvoir les adapter au dataset « utilisateurs », avant de les joindre à ce dernier. Le but étant de ne former qu’un seul et même dataframe.

Dans un second temps, j’ai nettoyé les données du dataframe : détection et remplacement des valeurs manquantes et transformation des dates d’anniversaire en âge.

CONSTRUCTION ET APPLICATION DU MODÈLE

Je commence par séparer mes variables dépendantes X de ma variable indépendante Y, que je cherche à prédire.

Étant donné que le modèle apprend sur des chiffres, je convertie ma variable indépendante en binaire.

En raison d’un nombre important de variables dépendantes, je remplace X par les dix variables dépendantes ayant le plus d’impact à l’aide de la méthode Kbest.

Puis je sépare le dataframe en un jeu d’apprentissage (X_train et Y_train ; 75%) et un jeu de test (X_test et y_test ; 25%).


Je peux maintenant faire ma prédiction sur X test.

Regardons les premières prédictions par rapport aux valeurs test.

Le modèle semble peu précis. En effet, il prédit trois bonnes valeurs sur cinq.

Observons la matrice de confusion, qui évalue la justesse du modèle en calculant le nombre de vrais et faux positifs et négatifs, et regardons le pourcentage de justesse de l’ensemble de nos prédictions.

Le modèle n’est pas très exact, puisque j’obtiens un score de précision aux alentours de 63%.

ÉVALUATION DU MODÈLE

La chance, qui correspond au modèle le plus simpliste et se calcule par le ratio de faux positifs/vrai positifs, nous donnerait un modèle avec un pourcentage de justesse égal à 62%. Or mon modèle est juste à 63%. La différence n’étant pas significative, mon modèle est peu pertinent.

 

PISTES D’AMÉLIORATION DU MODÈLE

Un modèle peu pertinent demeure très enrichissant, puisqu’il nous permet d’avancer et nous contraint de nous remettre en cause pour rechercher atteindre notre objectif.

Nous pourrions envisager plusieurs pistes d’amélioration :

– Enrichir le modèle avec davantage de variables quantitatives.
– Rechercher de nouvelles variables explicatives, étant donné qu’il y a peu de corrélation entre ma variable cible et mes variables explicatives.
– Enrichir la base de données Waiter.