Exemple de régression lasso en Python

WBOY
Libérer: 2023-06-10 20:52:55
original
1809 Les gens l'ont consulté

La régression Lasso est une méthode de régression linéaire populaire utilisée dans l'apprentissage automatique, qui vise à trouver le modèle le mieux adapté en ignorant les variables de caractéristiques non pertinentes. Cet article présentera comment implémenter la régression Lasso en Python et fournira un ensemble de données réelles à des fins de démonstration.

Introduction à la régression Lasso

La régression Lasso est une méthode de résolution de problèmes de moindres carrés ordinaires en ajoutant un terme de pénalité à la fonction objectif. Ce terme de pénalité est implémenté à l'aide de la régularisation L1 (également appelée pénalité Lasso), et sa forme est la suivante :

$J(eta)= rac{1}{2n}sum_{i=1}^{n}( y_i- sum_{j=1}^{p}X_{ij} eta_j)^2 + lpha sum_{j=1}^{p}| eta_j|$

où, $y$ est la variable de réponse, $X$ est la matrice de variables indépendantes, $eta$ est le coefficient du modèle, $n$ est le nombre d'échantillons, $p$ est le nombre de caractéristiques et $lpha$ est le paramètre de pénalité. La partie difficile de la régression Lasso est le problème d’optimisation non convexe du terme de pénalité.

Une façon d'implémenter la régression Lasso est de la résoudre via l'algorithme de descente de coordonnées (CD). L’idée de base est qu’à chaque itération, un seul coefficient est modifié. De cette manière, l’algorithme CD contourne intelligemment le problème d’optimisation non convexe du terme de pénalité.

Implémentation de la régression Python Lasso

Python fournit de nombreuses bibliothèques d'apprentissage automatique, telles que Scikit-learn, qui peuvent facilement implémenter la régression Lasso.

Tout d'abord, importez les bibliothèques requises comme suit :

import numpy as np
import pandas as pd
from sklearn.linear_model import LassoCV
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler
Copier après la connexion

Ensuite, nous chargeons l'ensemble de données sur les prix des logements à Boston et le normalisons :

boston = load_boston()
X = boston.data
y = boston.target
X = StandardScaler().fit_transform(X)
Copier après la connexion

Ensuite, nous implémentons la régression Lasso à l'aide de LassoCV dans Scikit-learn. Le modèle effectue automatiquement une validation croisée et sélectionne la valeur $lpha$ optimale.

lasso_reg = LassoCV(alphas=np.logspace(-3, 3, 100), cv=5, max_iter=100000)
lasso_reg.fit(X, y)
Copier après la connexion

Enfin, nous générons la valeur $lpha$ optimale résultante et les coefficients du modèle :

print('Best alpha:', lasso_reg.alpha_)
print('Model coefficients:', lasso_reg.coef_)
Copier après la connexion

Exemple de code complet :

import numpy as np
import pandas as pd
from sklearn.linear_model import LassoCV
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler

boston = load_boston()
X = boston.data
y = boston.target
X = StandardScaler().fit_transform(X)

lasso_reg = LassoCV(alphas=np.logspace(-3, 3, 100), cv=5, max_iter=100000)
lasso_reg.fit(X, y)

print('Best alpha:', lasso_reg.alpha_)
print('Model coefficients:', lasso_reg.coef_)
Copier après la connexion

Le résultat est le suivant :

Best alpha: 0.10000000000000002
Model coefficients: [-0.89521162  1.08556604  0.14359222  0.68736347 -2.04113155  2.67946138
  0.01939491 -3.08179223  2.63754058 -2.05806301 -2.05202597  0.89812875
 -3.73066641]
Copier après la connexion

Cela montre que grâce à la régression Lasso, nous pouvons déterminer la précision de Boston Le meilleur modèle pour prédire les prix de l'immobilier et extraire les caractéristiques les plus pertinentes pour la variable de réponse.

Conclusion

Cet article présente comment implémenter la régression Lasso en Python et démontre l'application de cette méthode à travers un ensemble de données réel. La régression lasso est une technique de régression linéaire très utile, particulièrement adaptée au traitement de données de grande dimension. Dans des problèmes pratiques, des techniques telles que la validation croisée et la standardisation peuvent être utilisées pour optimiser les performances du modèle et extraire les fonctionnalités les plus pertinentes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!