Maison > Article > Périphériques technologiques > Exemple de régression lasso : explication détaillée de la méthode de sélection des fonctionnalités
La régression Lasso est un modèle de régression linéaire utilisé pour la sélection de fonctionnalités. En ajoutant un terme de régularisation L1 à la fonction de perte, les coefficients de certaines caractéristiques peuvent être fixés à 0, atteignant ainsi l'objectif de sélection des caractéristiques. Dans ce qui suit, je détaillerai la méthode de régression au lasso et fournirai un exemple et le code Python correspondant.
La fonction de perte de la régression au lasso est :
L(beta)=frac{1}{2n}sum_{i=1}^{n}(y_{ i }-sum_{j=1}^{p}x_{ij}beta_{j})^{2}+lambdasum_{j=1}^{p}|beta_{j}|
en régression linéaire Dans , un concept important est la régularisation. Parmi eux, n représente le nombre d'échantillons, p représente le nombre de caractéristiques, y_{i} représente l'étiquette du i-ème échantillon, x_{ij} représente la j-ème valeur de caractéristique du i-ème échantillon, beta_ {j} représente le j-ième coefficient de caractéristique, lambda représente la force de régularisation. Le but de la régularisation est d'éviter le surajustement et de contrôler la complexité du modèle en pénalisant les coefficients caractéristiques du modèle. En régularisation, plus la valeur de lambda est grande, plus le modèle pénalise fortement les fonctionnalités. Cela fera passer les coefficients de certaines caractéristiques à 0, réduisant ainsi le nombre de caractéristiques dans le modèle. Grâce à la régularisation, nous pouvons choisir de conserver les fonctionnalités qui ont le plus d'impact sur les résultats de prédiction tout en réduisant les fonctionnalités inutiles. Cela simplifie le modèle et améliore sa capacité de généralisation. Par conséquent, l'objectif d'optimisation de la régression lasso lors du choix de la régularisation est :
hat{beta}=argmin_{beta}frac{1}{2n}sum_{i=1}^{n}(y_ {i}-sum_ {j=1}^{p}x_{ij}beta_{j})^{2}+lambdasum_{j=1}^{p}|beta_{j}|
lasso La méthode de solution de régression peut utiliser la méthode de descente de coordonnées ou la méthode de régression d'angle minimum. La méthode de descente de coordonnées est une méthode d'optimisation itérative qui n'optimise qu'un seul coefficient à la fois et maintient les autres coefficients inchangés jusqu'à convergence. La méthode de régression à angle minimum est une méthode de solution directe qui obtient le modèle final en optimisant simultanément tous les coefficients.
Exemples et code de régression Lasso
# 导入数据集和相关库 from sklearn.datasets import load_diabetes from sklearn.linear_model import Lasso import numpy as np import matplotlib.pyplot as plt # 加载糖尿病数据集 diabetes = load_diabetes() # 将数据集分成训练集和测试集 X_train = diabetes.data[:300] y_train = diabetes.target[:300] X_test = diabetes.data[300:] y_test = diabetes.target[300:] # 套索回归模型 lasso = Lasso(alpha=0.1) lasso.fit(X_train, y_train) # 打印每个特征的系数 print("lasso.coef_:", lasso.coef_) # 绘制每个特征的系数 plt.plot(range(diabetes.data.shape[1]), lasso.coef_) plt.xticks(range(diabetes.data.shape[1]), diabetes.feature_names, rotation=60) plt.ylabel("Coefficients") plt.show()
En exécutant le code ci-dessus, nous pouvons obtenir les coefficients de chaque caractéristique et le tracé des coefficients tracés. Les résultats montrent que la régression lasso compresse les coefficients de toutes les caractéristiques à l'exception de la deuxième caractéristique à 0, ce qui indique que ces caractéristiques contribuent peu au modèle et peuvent être éliminées. De plus, le coefficient de la deuxième caractéristique est plus grand que les coefficients des autres caractéristiques, ce qui indique qu’il s’agit de la caractéristique la plus importante.
La régression Lasso est une méthode de sélection de fonctionnalités très efficace qui peut contrôler la quantité et la qualité des fonctionnalités en ajustant la force de régularisation. Dans des applications pratiques, nous pouvons utiliser la validation croisée pour sélectionner la force de régularisation optimale afin d'obtenir de meilleures performances du modèle et de meilleurs effets de sélection de fonctionnalités.
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!