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

Exemple de régression lasso : explication détaillée de la méthode de sélection des fonctionnalités

PHPz
PHPzavant
2024-01-23 09:27:111310parcourir

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.

Méthode de régression au lasso

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

Ci-dessous, nous utilisons un ensemble de données réelles pour démontrer l'effet de sélection de fonctionnalités de la régression Lasso. Nous utilisons l'ensemble de données sur le diabète dans sklearn, qui contient 10 caractéristiques et une variable de réponse pour 442 patients diabétiques, et notre objectif est de sélectionner les caractéristiques les plus importantes à l'aide de la régression par 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer