Comment mesurer la performance d’un modèle ?

Dans cet article j’ai envie de vous parler de la performance des modèles au sens large (classification ou régression). Il y a déjà pas mal d’articles pour comprendre les algorithmes (Arbre de décision, Random Forest, Gradient Boosting, …) mais je n’avais pas encore abordé leur évaluation. Pourtant c’est un sujet essentiel. Peu importe votre projet, vous serez forcément amené(e) à devoir évaluer la performance de votre modèle pour mesurer les risques mais également pour comparer plusieurs algorithmes ou plusieurs versions de votre algorithme. Dans cet article je vais vous présenter la démarche globale de mesure de la performance des modèles puis plusieurs articles vous présenteront ensuite les indicateurs à utiliser en fonction du type de modèles.

« Mesurer la performance » qu’est-ce que ça veut dire ?

Ici on parle de la performance des modèles supervisés. Nous avons donc une variable cible à prédire et notre modèle sera performant si la prédiction de l’algorithme est proche de la variable cible.

Prenons un exemple avec un score de churn (modèle de classification). Nous avons une base de données client qui ont été abonnés à un service. Dans cette base, on distingue des clients qui sont encore abonnés et des clients qui ont résilié le service.

Nous construisons un score de churn : pour chaque client, on prédit s’il va résilier ou conserver son abonnement le mois suivant.

Tout l’enjeu est donc de savoir quelle est la performance de ce score ? A quel point je peux lui faire confiance pour prédire les résiliations futures. Je dois mesurer si ma colonne prédiction est proche de ma colonne statut (que je cherche à prédire).

Dis comme ça… ça a l’air vraiment simple mais à y regarder d’un peu plus près il existe beaucoup de mesures de la performance des modèles tout simplement parce que ce n’est pas si simple.

Comment mesurer la performance d’un modèle ?

Avant de voir ensemble quelques indicateurs de mesure de la performance, j’aimerais vous parler de la démarche à suivre pour mesurer efficacement la performance de vos modèles. Si vous avez l’habitude des projets de Data Science, vous pouvez passer directement au chapitre suivant : ici je veux vous parler d’apprentissage et de test.

Au démarrage de votre projet, vous disposez d’un dataset avec tous les clients et vous savez s’ils ont résilié ou non leur abonnement. Ce dataset, vous allez devoir le séparer en 2 parties :

  • Un dataset d’apprentissage : vous utiliserez ces données pour entraîner votre modèle
  • Un dataset de test : une fois votre modèle entraîné sur l’échantillon d’apprentissage vous l’appliquerez sur le dataset de test. Vous aurez donc le statut réel de ces clients ainsi que la prédiction faite par votre modèle.

La mesure de la performance se fait toujours sur l’échantillon de test. Pourquoi ? Tout simplement parce que vous devez tester la performance de votre modèle sur des données qui n’ont pas été utilisées pour construire le modèle. Le schéma ci-dessous illustre toutes ces étapes.

Si vous faites toutes les étapes sur un seul et même jeu de données vous risquez d’avoir une très bonne performance théorique (on parle de sur-apprentissage) mais quand vous appliquerez le modèle sur un nouveau jeu de données, le résultat risque d’être mauvais.

Quels indicateurs de performance faut-il utiliser ?

Plusieurs indicateurs permettent de mesurer la performance des modèles. Chacun a ses spécificités et il faut bien souvent en utiliser plusieurs pour avoir une vision complète de la performance de votre modèle.

Je prévois de vous faire une série d’articles sur ces indicateurs :

Pour les modèles de classification :

Pour les modèles de régression :

  • RSS
  • MSE
  • RMSE
  • RSE

Et vous, quels indicateurs de performance avez-vous l’habitude d’utiliser?

3 réflexions sur “Comment mesurer la performance d’un modèle ?”

  1. Ping : Mesurer la performance d’un modèle : Accuracy, recall et precision – Lovely Analytics

  2. Ping : Random Forest, tutoriel pas à pas avec Python – Lovely Analytics

  3. Ping : Random Forest, tutoriel avec Python - Lovely Analytics dev

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *