Amarengo

Articles and news

Tutoriel Rapide Sur La Régression Au LASSO Avec Exemple

La régression au LASSO signifie Opérateur de Retrait et de Sélection Le Moins Absolu. L’algorithme est une autre variante de la régression linéaire, tout comme la régression de crête. Nous utilisons la régression lasso lorsque nous avons un grand nombre de variables prédictives.

Aperçu – Régression Lasso

La régression Lasso est un modèle parcimonieux qui effectue une régularisation L1. La régularisation L1 ajoute une pénalité équivalente à la grandeur absolue des coefficients de régression et tente de les minimiser. L’équation du lasso est similaire à la régression de crête et ressemble à celle donnée ci-dessous.

 LS Obj + λ (sum of the absolute values of coefficients)

Ici, l’objectif est le suivant:
Si λ = 0, On obtient les mêmes coefficients que la régression linéaire
Si λ = varie beaucoup, Tous les coefficients sont réduits vers zéro

Les deux modèles, régression au lasso et à la crête, sont presque similaires l’un à l’autre. Cependant, au lasso, les coefficients responsables d’une grande variance sont convertis en zéro. D’un autre côté, les coefficients ne sont que réduits mais ne sont jamais rendus nuls dans la régression de crête.

L’analyse de régression au Lasso est également utilisée pour la sélection de variables, car le modèle impose des coefficients de certaines variables pour se réduire vers zéro.

Que signifie un grand nombre de variables ?

  1. Le grand nombre ici signifie que le modèle a tendance à trop s’adapter. Théoriquement, un minimum de dix variables peut causer un problème de surajustement.
  2. Lorsque vous faites face à des défis de calcul dus à la présence de n nombre de variables. Bien que, compte tenu de la puissance de traitement actuelle des systèmes, cette situation se pose rarement.

Le diagramme suivant est l’interprétation visuelle comparant la régression OLS et lasso.

Le LASSO n’est pas très bon pour gérer les variables qui montrent une corrélation entre elles et peut donc parfois montrer un comportement très sauvage.

Modèle de régression Lasso d’entraînement

L’entraînement du modèle de régression lasso est exactement le même que celui de la régression ridge. Nous devons identifier la valeur lambda optimale, puis utiliser cette valeur pour entraîner le modèle. Pour ce faire, nous pouvons utiliser la même fonction glmnet et passer l’argument alpha = 1. Lorsque nous passons alpha = 0, glmnet() exécute une régression de crête, et lorsque nous passons alpha = 0.5, le glmnet exécute un autre type de modèle appelé filet élastique et est une combinaison de régression de crête et de lasso.

  1. Nous utilisons la fonction cv.glmnet() pour identifier la valeur lambda optimale
  2. Extraire le meilleur lambda et le meilleur modèle
  3. Reconstruire le modèle en utilisant glmnet() fonction
  4. Utilisez la fonction predict pour prédire les valeurs sur les données futures

Pour cet exemple, nous utiliserons swiss jeu de données permettant de prédire la fécondité à partir d’indicateurs socio-économiques pour l’année 1888.

Mise à jour – L’extrait de code a été mis à jour pour corriger certains noms de variables – 28/05/2020

# Output 0.3981072

En utilisant cette valeur, entraînons à nouveau le modèle de lasso.

Enfin, nous combinons les valeurs prédites et les valeurs réelles pour voir les deux valeurs côte à côte, puis vous pouvez utiliser la formule R au carré pour vérifier les performances du modèle. Remarque – vous devez calculer les valeurs R au carré pour l’ensemble de données train et test.

final <- cbind(y_var, pred)# Checking the first six obshead(final)

Partage de la formule R au carré

La fonction fournie ci-dessous n’est qu’indicative et vous devez fournir les valeurs réelles et prédites en fonction de votre jeu de données.

actual <- test$actualpreds <- test$predictedrss <- sum((preds - actual) ^ 2)tss <- sum((actual - mean(actual)) ^ 2)rsq <- 1 - rss/tssrsq

Obtenir la liste des variables importantes

Pour obtenir la liste des variables importantes, il suffit d’étudier les coefficients bêta du meilleur modèle final.

# Inspecting beta coefficientscoef(lasso_best)
# Output6 x 1 sparse Matrix of class "dgCMatrix" s0(Intercept) 66.5365304Agriculture -0.0489183Examination . Education -0.9523625Catholic 0.1188127Infant.Mortality 0.4994369

Le modèle indique que les coefficients de l’agriculture et de l’éducation ont été réduits à zéro. Ainsi, nous nous retrouvons avec trois variables, à savoir; Examen, Catholique et Nourrisson.Mortalité

Dans ce chapitre, nous avons appris à construire une régression lasso en utilisant le même package glmnet, que nous avons utilisé pour construire la régression ridge. Nous avons également vu quelle est la différence entre la crête et le lasso. Dans le chapitre suivant, nous discuterons de la façon de prédire une variable dichotomique en utilisant la régression logistique.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.