TP la régression

In [1]:
import pandas as pd
from sklearn import metrics

Exo1: Régression I

On va, dans un premier temps, montrer comment générer et faire de la régression avec sk-learn.

On va commencer par créer un jeu de données aléatoire avec la fonction make$\_$regression de SK-learn.

Elle permet de créer un jeu de données en choisissant le nombre d'exemples, la dimension des données et le nombre de dimensions explicatives.

1) Créer deux jeux de données (d'entraînement et de test avec 90% de données d'entrainement train$\_$test$\_$split), dans le cas où on a bien unicité du problème de régression (voir cours) et ou toutes les variables sont explicatives.

2) Faire une régression sur le jeux de données d'entrainement avec LinearRegression.

3) Utiliser la fonction predict de LinearRegression pour prédire les valeurs de sorties associées au jeu de données de test. Utiliser la fonction erreur de SK-learn afin de déterminer l'erreur de prédiction sur le jeux test.

Exo2: Régression II

1) Créer deux jeux de données (d'entraînement et de test), dans le cas où on a pas unicité du problème de régression (voir cours) et où toutes les variables sont explicatives.

2) Faire une régression sur le jeu de données d'entrainement avec Ridge et une avec une régression linéaire LinearRegression.

3) Utiliser la fonction predict de Ridge pour prédire les valeurs de sorties associées au jeu de données de test. Utiliser la fonction erreur de SK-learn afin de déterminer l'erreur de prédiction sur le jeux test. On pourra tester plusieurs paramètres de régularisation.

4) Trouver le meilleur modèle de régularisation avec de la validation croisée. Pour cela on utilisera RidgeCV. etc

Exo 3: Régression a Noyau

On va considérer un jeu de données classique de Sk-learn dont le but est de modéliser la progression du diabète en fonction de plusieurs critères.

On suppose $y=f(x)$ avec $y$ une mesure de progression du diabète load$\_$diabete.

  • $x_1$= age,
  • $x_2$= sexe,
  • $x_3$ =mass index

etc

Question 1:

On va ici comparer plusieurs modèles de regression à noyau KernelRidge. Pour cela on va utiliser le système de vote proposé ici en appliquant plusieurs régression à noyau avec des noyaux différents à chaque fois ( le coefficient ridge sera à choisir). On utilisera 97% de jeux de données pour l'apprentissage.

On comparera les résultats des différents apprentissages sur les données restantes. On affichera les bons résultats, les résultats de chaque régression et celui du vote.

Question 2:

On essayera aussi la régression Lasso. Pour déterminer le meilleur coefficient on pourra utiliser la recherche en grille.

In [ ]: