Régularisation et augmentation dans la modélisation prédictive

Parmi les utilisateurs de Tableau, beaucoup n’utilisent pas nécessairement la modélisation prédictive, ni ne cherchent à améliorer la qualité d’adéquation et de prédiction d’un modèle prédictif. Cet article s’adresse aux utilisateurs avancés qui s’intéressent à ce domaine de la science des données.

En plus des arguments par défaut tels que l’expression cible (la mesure à prédire) et l’expression du prédicteur (la mesure et/ou les dimensions utilisées pour faire la prédiction), vous pouvez ajouter deux autres arguments permettant d’affiner vos prédictions : lambda, un paramètre de régularisation, et augmentation. Il s’agit d’ajouter les nouveaux arguments à la syntaxe de votre calcul.

Quels modèles fonctionnent avec la régularisation et l’augmentation ?

Rappelons que les fonctions de modélisation prédictive dans Tableau prennent en charge trois modèles : la régression linéaire (également appelée OLS, ou méthode des moindres carrés ordinaires), la régression linéaire régularisée (ou régression de crête) et la régression par processus gaussien. Si vous utilisez la régression linéaire ou de crête, l’augmentation vous permet d’augmenter la capacité de vos modèles à choisir des modèles non linéaires. Si vous utilisez la régression de crête, le paramètre de régularisation est un scalaire que vous pouvez utiliser pour ajuster l’effet de régularisation sur votre modèle.

La régularisation et l’augmentation ne s’appliquent pas à la régression par processus gaussien.

Avant d’approfondir les notions de régularisation et d’augmentation, examinons ces deux modèles :

La régression linéaire est particulièrement recommandée dans les cas suivants : un ou plusieurs prédicteurs ont une relation linéaire entre la prédiction et la cible de prédiction, ils ne sont pas affectés par les mêmes conditions sous-jacentes, et ils ne représentent pas deux instances des mêmes données (par exemple, les ventes exprimées en dollars et en euros).

La régression linéaire régularisée est utilisée pour améliorer la stabilité, réduire l’impact de la colinéarité et améliorer l’efficacité et la généralisation du calcul. Dans Tableau, la régularisation L2 est utilisée. Pour plus d’informations sur la régularisation L2, consultez cette leçon sur la régression de crête.

Qu’est-ce que la régularisation ?

La régression de crête est un type spécifique de régression linéaire régularisée. La régularisation impose une pénalité sur la taille des coefficients du modèle. Le degré de régularisation est contrôlé par lambda, un scalaire utilisé pour affiner l’impact global de la régularisation. Plus la valeur est élevée, plus la pénalité est lourde (c.-à-d. plus la régularisation est importante).

La régression de crête résout certains problèmes de la régression linéaire :

  • Elle élimine les problèmes introduits par la multicolinéarité chez les prédicteurs.

  • Si le problème des moindres carrés est mal conditionné, par exemple si le nombre de points de données est inférieur au nombre d’attributs, lambda sélectionnera une solution unique.

  • Elle permet d’améliorer la généralisation du modèle linéaire.

Par défaut, la régression de crête dans Tableau a un lambda=0,5 parce que cette valeur fonctionne bien dans de nombreux cas. Pour modifier la valeur lambda, il suffit de modifier le calcul de table (exemples ci-dessous).

Qu’est-ce que l’augmentation ?

L’augmentation dans MODEL_QUANTILE et MODEL_PERCENTILE est un exemple simple d’augmentation des données : les prédicteurs sont étendus aux équations polynomiales de degré supérieur. Dans Tableau, il existe quelques types d’augmentations polynomiales intégrées aux fonctions de modélisation prédictive.

  • Pour les dimensions ordonnées, les polynômes de Legendre jusqu’à l’ordre 3 permettent au modèle linéaire de sélectionner des relations quadratiques et cubiques entre le prédicteur augmenté et la réponse.

  • Pour les mesures, les polynômes d’Hermite du 2ème degré permettent au modèle linéaire de sélectionner des relations quadratiques entre le prédicteur augmenté et la réponse.

Dans la régression linéaire, seules les dimensions ordonnées sont augmentées par défaut avec augmentation=on. Dans la régression de crête où model=rl, seules les mesures sont augmentées par défaut. Pour remplacer le paramètre et désactiver l’augmentation pour chaque prédicteur dans votre calcul, utilisez augmentation=off. Aucun polynôme d’ordre supérieur ne sera ajouté.

La désactivation des augmentations est avantageux lorsque l’ensemble de données est très petit parce que les augmentations pourraient surajuster tout bruit présent dans les données d’origine, et aussi parce que la relation qui en résulte est plus simple et plus intuitive.

Remarque : l’augmentation est activée/désactivée selon le prédicteur (c.-à-d. dans l’argument du prédicteur de votre calcul). Lambda (et le modèle) sont appliqués au niveau supérieur (en dehors de toute expression de prédicteur).

Configuration de lambda et de l’augmentation dans votre calcul

Maintenant que vous connaissez le paramètre de régularisation (ou lambda) et l’augmentation des données, examinons-les dans le contexte d’un calcul de prédiction :

MODEL_QUANTILE("model=rl, lambda=0.05", 0.5, SUM([Profit]), "augmentation=off", SUM([Sales]))

Voici un tableau qui résume rapidement si la modification de l’augmentation et du lambda par rapport à la valeur par défaut affecte les modèles linéaires:

 AugmentationLambda
Régression de crêteOuiOui
Régression linéaireOuiNon applicable

Considérations sur la régularisation et l’augmentation

  • Si vous utilisez le mauvais modèle pour vos données, il est peu probable que vous obteniez de bien meilleurs résultats en modifiant le paramètre de régularisation ou d’augmentation. Commencez par vérifier si les types de données sont corrects (mesures vs. dimensions). Si les données sous-jacentes sont une série chronologique, par exemple, envisagez d’utiliser la régression par processus gaussien à la place, en utilisant plutôt le modèle model=gp dans votre calcul de table.

  • Comme OLS n’est pas régularisé, il n’y a pas de valeur lambda qui puisse être changée.

  • Si votre ensemble de données est extrêmement petit et que vous avez des dimensions (en particulier des dimensions à cardinalité élevée), envisagez d’utiliser la régression de crête en ajoutant model=rl à votre calcul de table.

  • Toutes choses égales par ailleurs (pour le même ensemble de données, selon que l’augmentation est activée ou désactivée), un lambda faible peut améliorer l’ajustement, mais nuire à la généralisation (entraîne un surajustement).

  • Inversement, un lambda élevé peut pousser l’ajustement à être un modèle constant, sans dépendre de l’un des prédicteurs. Cela réduira la capacité du modèle (entraîne un sous-ajustement).

Exemple 1

Cet exemple montre la relation entre le cholestérol moyen et les maladies cardiaques chez les hommes et les femmes, où les hommes sont représentés par des repères carrés et les femmes sont représentées par des cercles.

Dans la première visualisation, les repères bleus indiquent la cible de prédiction et les repères orange sont les valeurs modélisées. Vous pouvez voir que les données comportent beaucoup de bruit, et qu’avec l’augmentation activée et une petite valeur lambda de 0,01, nous voyons des taux irréalistes de maladies cardiaques supérieurs à 1. On constate une dépendance beaucoup trop importante, probablement en raison de toutes les valeurs atypiques dans les données bruyantes.

Maladies cardiaques par sexe avec cible de prédiction et un modèle peu adapté

MODEL_QUANTILE("model=rl, lambda=0.01", 0.5, AVG([Target]), ATTR([Sex]), "augmentation=on", AVG([Chol]))

Dans la visualisation suivante, nous comparons la cible de prédiction avec un modèle différent, avec l’augmentation désactivée et une valeur lambda désactivée de 10. Notez que ce modèle est plus réaliste, et aucun repère ne dépasse un taux de maladie de 1.

Maladies cardiaques par sexe avec cible de prédiction et un modèle plus adapté

MODEL_QUANTILE("model=rl, lambda=10", 0.5, AVG([Target]), ATTR([Sex]), "augmentation=off", AVG([Chol]))

Exemple 2

Examinons ensuite un autre exemple concret en utilisant les données d’utilisation du système de partage de vélos Bluebikes (anciennement Hubway) de Boston. Dans ce cas, la régression linéaire fonctionne bien. Comparez les visualisations suivantes, agrégées pour les trimestres de 2017 :

Données d’utilisation d’emplacement Hubway sans surajustement

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, sum([Trip.Duration]), AVG([Temp]))

Données d’utilisation d’emplacement Hubway sans surajustement

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, AVG([Speed]), AVG([Temp]))

Ni l’une ni l’autre n’est encline au surajustement et la dépendance au lambda est donc faible pour un lambda petit.

Examinons maintenant cette dernière visualisation :

Données d’utilisation d’emplacement Hubway sans surajustement

MODEL_QUANTILE('model=rl, lambda=2', 0.5, sum([Trip.Duration]), AVG([Temp]))

Notez qu’à mesure que le lambda augmente, l’ajustement s’aplatit jusqu’à ne plus présenter de pente (c’est-à-dire qu’il devient trop régularisé ou « sous-ajusté »).

Merci de vos commentaires !Avis correctement envoyé. Merci