Régression : régularisation

S’entraîner aux questions d’entretien en Machine Learning avec Python

Lisa Stuart

Data Scientist

Algorithmes de régularisation

  • Régression Ridge
  • Régression Lasso
  • Régression ElasticNet
S’entraîner aux questions d’entretien en Machine Learning avec Python

Moindres carrés ordinaires

Graphique MCO

Formule MCO

1 https://en.wikipedia.org/wiki/Linear_regression#Simple_and_multiple_linear_regression
S’entraîner aux questions d’entretien en Machine Learning avec Python

Fonction de perte Ridge

Graphique régression Ridge

Formule régression Ridge

1 https://gerardnico.com/data_mining/ridge_regression#tuning_parameter_math_lambdamath
S’entraîner aux questions d’entretien en Machine Learning avec Python

Fonction de perte Lasso

Graphique régression Lasso

Formule régression Lasso

1 https://stats.stackexchange.com/questions/155192/why-discrepancy-between-lasso-and-randomforest
S’entraîner aux questions d’entretien en Machine Learning avec Python

Ridge vs Lasso

Régularisation L1 (Lasso) L2 (Ridge)
pénalise somme des valeurs absolues des coefficients somme des carrés des coefficients
solutions clairsemées non clairsemées
nombre de solutions multiple unique
sélection de variables oui non
robuste aux valeurs aberrantes ? oui non
motifs complexes ? non oui
S’entraîner aux questions d’entretien en Machine Learning avec Python

ElasticNet

Formule ElasticNet

S’entraîner aux questions d’entretien en Machine Learning avec Python

Régularisation avec les données du logement à Boston

Variables CHAS NOX RM
Estimations des coefficients 2,7 -17,8 3,8
Coefficients régularisés 0 0 0,95
S’entraîner aux questions d’entretien en Machine Learning avec Python

Fonctions de régularisation

# Estimateur Lasso 
sklearn.linear_model.Lasso

# Estimateur Lasso avec validation croisée
sklearn.linear_model.LassoCV

# Estimateur Ridge
sklearn.linear_model.Ridge

# Estimateur Ridge avec validation croisée
sklearn.linear_model.RidgeCV

# Estimateur ElasticNet
sklearn.linear_model.ElasticNet
# Estimateur ElasticNet avec validation croisée
sklearn.linear_model.ElasticNetCV

# Séparation entraînement/test
sklearn.model_selection.train_test_split

# Erreur quadratique moyenne
sklearn.metrics.mean_squared_error(y_test, 
                           predict(X_test))
# Meilleur paramètre de régularisation
mod_cv.alpha_

# Tableau de valeurs log
alphas=np.logspace(-6, 6, 13)
S’entraîner aux questions d’entretien en Machine Learning avec Python

Passons à la pratique !

S’entraîner aux questions d’entretien en Machine Learning avec Python

Preparing Video For Download...