Un petit plaisir régressif

Cet article est issu de la newsletter IA Comprise et reproduit ici par commodité. Recevez toutes les lettres dans votre boîte mail au fur et à mesure de leur publication en laissant votre adresse dans le cadre à droite !


On dit que le monde se répartit en deux catégories :

  • Ceux qui savent extrapoler à partir de données incomplètes
  • ……………………………………..

Aujourd’hui, je vous parle justement d’extrapolation.

Comme je ne doute pas que vous appartenez à la première catégorie, je vais en profiter pour économiser des caractères et vous laisser le soin d’extrapoler autant que nécessaire dans cette lettre.

Extrapolez, extrapolez, il en restera toujours quelque chose

On parle d’extrapolation lorsque l’on cherche à prédire une valeur à partir de données connues.

On la différencie parfois de l’interpolation, qui consiste à estimer des valeurs entre les données connues là où l’extrapolation estime au-delà des données connues.

Par exemple, si mon train était à Paris à 12h et à Orléans à 13h, sa position à 12h30 est interpolée, tandis que sa position à 14h est ……………………………………...

Ici j’abuserai du terme pour désigner indifféremment l’un ou l’autre.

En machine learning, l’extrapolation est l’essence des problèmes de régression :

  • Connaissant le prix de millions de livres, on peut estimer le prix d’un certain livre en fonction de son auteur, de son sujet, du nombre de pages…
  • Connaissant l’historique des ventes d’une boutique, on peut estimer les ventes d’un certain jour en fonction de la date, du jour de la semaine, de la météo…
  • Connaissant la durée de vie de milliers de batteries avant qu’elles ne soient à plat, ……………………………………..

Mais je digresse…

Les data scientists ont dans leur boîte à outils de nombreux algorithmes permettant de résoudre un problème de régression. Chacun de ces outils a ses forces et ses faiblesses, en termes de performance (qui dépend elle-même de la situation et de l’objectif), de rapidité ou encore d’intelligibilité.

La « mère de tous les algorithmes » en matière de régression est la régression linéaire : accessible, efficace et couramment utilisé.

Si vous vous régressez sur votre siège à la lecture de ce terme, vous pouvez progresser plus avant sans crainte, je ne vous agresserai pas de mathématiques. Mais je digresse

« Gresse »

Lorsque l’on modélise un problème par une régression linéaire, on fait l’hypothèse qu’il existe une relation linéaire, ou de proportionnalité [1], entre une certaine grandeur connue, nommée variable indépendante (par exemple, le nombre de moutons dans un troupeau) et celle que l’on veut prévoir, nommée variable dépendante (par exemple, le nombre de gigots que l’on pourra en tirer) [2].

En pratique, on rencontre rarement des relations parfaitement linéaires dans des cas réels : de nombreuses autres variables indépendantes peuvent influencer la variable dépendante.

Toutefois si la variable indépendante est tout de même le déterminant majeur de la variable dépendante, on peut modéliser la réalité à l’aide d’une régression linéaire et réaliser une prévision décente à l’aide de ce modèle.

Par exemple, parmi nos troupeaux de moutons, il arrive qu’un loup vienne croquer l’un des moutons avant qu’il ne soit transformé en gigots. Dans d’autres on trouve des moutons mutants à trois gigots [3]. Mais malgré ces perturbations, on se trompera de peu si l’on se contente d’estimer que le nombre de gigots est égal au double ……………………………………...

Même si tous les points réels ne sont pas alignés, le principe du modèle consiste à décider que la valeur à prédire sera sur cette droite

Mais comment l’algorithme choisit-il la droite sur laquelle se placeront les valeurs prédites ?

Et comment savoir si ce modèle reflète bien la réalité ?

Interpréter une régression

Dans l’idéal, la droite modélisée devrait être choisie de sorte que les points connus soient sur cette droite, ou à défaut le plus proche possible de la droite.

L’algorithme de régression linéaire fonctionne sur ce principe : il va choisir comme droite modèle celle qui minimise les distances entre chaque point et la droite en question [4].

Avec cette méthode, on s’assure en quelque sorte que lorsqu’on prédira ensuite des valeurs (sur la droite), celles-ci seront proches de valeurs existantes.

Un algorithme de régression linéaire trouve la droite (en pointillés) qui minimise les écarts avec les points (en rouge)

Un algorithme de régression linéaire peut toujours calculer la meilleure droite selon ce critère. En revanche, cela ne signifie pas pour autant que cette meilleure droite reflète correctement la réalité.

Cela se voit aisément à l’œil nu : les points connus s’écartent plus ou moins de la droite modèle. Plus ils en sont proches, plus le choix d’une droite comme modèle est pertinent. Et plus ils s’en écartent, plus ……………………………………...

La qualité de la modélisation s’évalue à partir d’un indicateur appelé coefficient de corrélation (noté « r ») [5].

Je ne détaillerai pas ici comment il est calculé mathématiquement : c’est rarement quelque chose que l’on s’amuse à calculer à la main. Ce qui compte vraiment, c’est de savoir l’interpréter :

  • Il varie entre -1 et 1 [6]
  • S’il est proche de 1 ou de -1, la corrélation est excellente : les points sont « presque » alignés, donc prédire qu’une valeur inconnue sera sur la droite sera plutôt juste
  • S’il est proche de 0, inutile d’utiliser cette droite, son pouvoir prédictif sera très faible. Deux possibilités : soit la variable dépendante et la variable indépendante ne sont pas corrélées, soit elles le sont mais pas selon une relation linéaire.
Avec r = 0,7, les points sont relativement bien alignés, la droite modélise plutôt correctement leur position. Avec r = 0,3 ……………………………………... Avec r = 0, une droite n’est tout simplement pas un bon modèle.

Extrapolons la régression

À première vue, le champ d’application d’une régression linéaire paraît limité : il n’est pas si fréquent d’étudier une valeur qui a le bon goût de dépendre linéairement (proportionnellement) d’une seule autre valeur.

Heureusement, le principe de la régression linéaire s’extrapole sans problème à des cas généraux !

La relation n’est pas linéaire ? Au lieu d’une droite, on peut modéliser les points connus par une autre fonction jugée plus adaptée : une racine carrée, une exponentielle, un polynôme, ……………………………………..

En pratique, face à une corrélation non linéaire on utilise toutefois une astuce pour revenir autant que possible à une régression linéaire facile à comprendre et à représenter : transformer les données sources.

Si vous soupçonnez que la longueur d’un yacht varie selon le carré de l’âge du capitaine, plutôt que de s’aventurer dans une régression complexe à partir de l’âge, faites une régression linéaire à partir… du carré de l’âge !

Enfin, si votre grandeur dépend de plusieurs variables, la régression linéaire devient tout simplement une régression multilinéaire, l’un des outils de base de la data science : combien de gigots en fonction de la taille du troupeau, du nombre de loups et de la distance au réacteur de Tchernobyl ?

…………………………………….. !

Erwan


Inscrivez-vous gratuitement pour ne rater aucune lettre !


Références
[1] Éventuellement à une valeur constante près
[2] Attention, malgré ce que peut laisser penser le terme de « variable dépendante », elle n’est pas forcément la cause de l’évolution de la variable indépendante même en cas de corrélation. Par exemple, une étude a montré que la consommation de chocolat était corrélée au taux de Prix Nobel dans la population… dont il ne faut pas déduire que consommer du chocolat favorise l’obtention du Prix Nobel !
http://deevybee.blogspot.com/2012/11/flaky-chocolate-and-new-england-journal.html
[3] Le fameux mouton à 5 pattes
[4] Pour être précis, on choisit généralement de minimiser la somme des carrés des distances de chaque point avec la droite (méthode des moindres carrés). Cela permet de favoriser une droite qui reste à moyenne distance de tous les points plutôt qu’une droite qui épouserait parfaitement certains points tout en s’écartant fortement d’autres points.
[5] Il existe en réalité plusieurs types de coefficients de corrélation. Celui que je décris ici est le plus fréquemment utilisé, le coefficient de Pearson, mais il existe également un coefficient de Spearman, qui évalue uniquement la monotonie de la distribution des points (autrement dit, s’ils sont rangés par ordre croissant/décroissant).
On trouve parfois aussi le terme de coefficient de détermination, qui, dans le cas d’une régression linéaire, n’est autre que le carré du coefficient de corrélation de Pearson.
[6] Un coefficient de corrélation négatif signifie que la corrélation est inverse, lorsque la variable indépendante augmente, la variable dépendante diminue. Ou dit plus simplement, que la droite de régression est décroissante…

Laisser un commentaire

Abonnez-moi à la newsletter