TP3 – Algorithmes de gradient stochastiques moyennés¶

Objectifs du TP¶

L'objectif de ce TP est d'étudier le comportement des estimateurs moyennés dans le cadre de la régression linéaire et de la régression logistique.

In [1]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

np.random.seed(123)
n = 10000
p = 5
theta_true = np.array([-2, -1, 0, 1, 2])

1. Régression linéaire¶

On considère le modèle

$$ Y_i = X_i^T \theta + \varepsilon_i, $$

avec :

  • $\theta = (-2,-1,0,1,2)^T \in \mathbb{R}^5$,
  • $X_i \sim \mathcal{N}(0, I_5)$,
  • $\varepsilon_i \sim \mathcal{N}(0,1)$, indépendants.

On prend $n = 10000$.

  1. Générer un échantillon $(X_i, Y_i)_{i=1,\dots,n}$.
In [ ]:
 
  1. Écrire une fonction qui ressorte l'ensemble des estimateurs de gradient stochastique et leur version moyennée
In [ ]:
 
  1. Tracer l'évolution de l'erreur quadratique (|\theta_i-\theta|^2) pour un échantillon.
In [ ]:
 
  1. Répéter l'expérience sur 50 échantillons indépendants et tracer l'erreur quadratique moyenne.
In [ ]:
 

2. Régression logistique¶

  1. Tracer l'évolution de l'erreur quadratique dans le cadre de la régression logistique, i.e. $$ \mathbb{P}(Y_i=1|X_i)=\sigma(X_i^T\theta), \quad \sigma(t)=\frac{1}{1+e^{-t}}, $$ avec :
  • $\theta = (1,1,1,1,1)^T \in \mathbb{R}^5$,
  • $X_i \sim \mathcal{N}(0, I_5)$,

On prend ici $\gamma_{n}=c_{\gamma}n^{-\alpha}$ avec $c=1$ et $\alpha=0.75$.

In [ ]:
 
  1. Tracer l'évolution de l'erreur quadratique dans le cadre de la régression logistique en prenant $c_{\gamma} = 2$ et $\alpha = 0.66$
In [ ]:
 

3. Probème mal conditioné¶

Revenir à l'exemple de la régression linéaire mais en prenant $X \sim \mathcal{N}(0, D)$ avec $D = \text{diag}\left( 10^{-2} , 10^{-1} , 1 , 10, 10^{2} \right)$. Regarder les évolutions des erreurs quadratiques moyennes pour les estimateurs de gradient stochastique et leurs versions moyennées pour différentes valeurs de $c_{\gamma}$.

In [ ]:
 
In [ ]: