Académique Documents
Professionnel Documents
Culture Documents
Apprentissage statistique I
Examen Juillet 2023
Les documents, calculatrices, téléphones et ordinateurs portables sont interdits. La qualité de la
rédaction sera prise en compte dans la notation.
Problème
On considère le jeu de données Caravan (de la bibliothèque ISLR du Logiciel R). La variable cible (ou réponse)
est Purchase : qui indique si un individu donné achète ou non une assurance caravane. On a :
> dim(Caravan)
[1] 5822 86
> summary(Purchase)
No Yes
5474 348
> 348/5822
[1] 0.0598
On décide de standardiser les données ainsi toutes les variables auront une moyenne de zéro et un écart-type de
un. La fonction du logiciel R, pour la standardisation, est scale()
On manipulera par la suite, ce nouveau jeu de données standardized.X. On divise les observations en un jeu de
test et un jeu d’entraînement.
On écrit :
On rappelle que test est une fonction numérique, avec des valeurs comprises entre 1 et 1000.
standardized.X[test,] donne la sous-matrice des données contenant les observations dont les indices vont de 1 à
1000, standardized.X[-test,] donne la sous-matrice contenant les observations dont les indices ne vont pas de 1
à 1000.
1
7. Quelles sont les dimensions de train.X, test.X, train.Y, test.Y ?
8. En quoi l’instruction set.seed (1) est-elle utile ?
On continue l’étude :
9. Quelle est la méthode utilisée ? Quel(s) est (sont) son (ses) hyperparamètre(s) ?
10. Cette méthode est-elle sensible aux grandes valeurs de p ? Justifier votre réponse.
11. Quelle est la dimension de knn.pred ?
12. Donner l’expression mathématique derrière knn.pred ?
13. A quoi correspondent les deux valeurs numériques 0.118 et 0.059 ?
14. Quelle est (sur l’échantillon test) la proportion des gens qui ont décidé de souscrire une assurrance comme
cela a été prédit.
15. A quoi correspond la valeur 0.117.
16. Conclure.
2
Apprentissage statistique II
Examen Juillet 2023
Le sujet comporte quatre exercices indépendants. Les documents, calculatrices, téléphones et
ordinateurs portables sont interdits. La qualité de la rédaction sera prise en compte dans la
notation. Le barême est donné à titre indicatif.
Yi = βXi + b + ϵi , 1 ≤ i ≤ n
On observe, pour une plante donnée, les 4 mesures suivantes longueur du sépale X (1) , largeur du sépale X (2) ,
longueur du pétale X (3) et largeur du pétale X (4) on voudrait pouvoir classer cette plante dans l’une des espèces
suivantes : setosa, versicolor et virginica.
1. Ecrire en utilisant la fonction softmax un modèle paramétrique permettant de prédire la probabilité
d’appartenance d’une plante donnée à l’une des trois espèces.
2. Représenter ce modèle sous la forme d’un réseau de neurones à une seule cachée. Combien y-a-t-il de
neurones dans la couche de sortie ?
3. Donner une fonction de coût permettant d’estimer les paramètres du modèle proposé.
3
def algo_training(X, y, num_steps, learning_rate, batch_size):
w, b = np.zeros(X.shape[1]), 0
costs_SGD=[]
for step in range(num_steps):
batch = np.random.choice(X.shape[0], batch_size)
X_batch, y_batch = X[batch], y[batch]
aa = sigmoid(np.dot(X_batch,w)+b) - y_batch
grad_w = np.matmul(X_batch.T, aa)
grad_b = np.sum(aa)
w = w - learning_rate * grad_w
b = b - learning_rate * grad_b
if step%300==0:
print ("Dans l’étape ",step,", les paramètres sont", w, b,";")
print ("la value de la fonction de coût est", cost_log_likelihood(X,y,w,b)) return w,b
1. Sachant qu’il s’agit d’un problème de régression logistique binaire (la sortie est dans {0, 1}), définir
cost_log_likelihood(X,y,w,b))
4
Apprentissage statistique II
Examen Mai 2023
Le sujet comporte trois exercices indépendants. Les documents, calculatrices, téléphones et
ordinateurs portables sont interdits. La qualité de la rédaction sera prise en compte dans la
notation. Le barême est donné à titre indicatif.
On rappelle que la fonction de régression logistique ou sigmoide, que l’on notera ϕ le long de cet exercice,
est définie, pour u ∈ R, par,
1
ϕ(u) = .
1 + e−u
(1)
w1 x
· · t Pp (j)
On rappelle aussi que pour w =
· et x = · , w x = j=1 wj x .
wp x(p)
1. Montrer que pour tout u ∈ R
ϕ(−u) = 1 − ϕ(u).
2. On considère le modèle de régression logistique pour Y ∈ {−1, 1} avec paramètres w, b (w ∈ Rp est le
vecteur du poids et b ∈ R est l’intercept) suivant :
P (Y = 1|X = x) = ϕ(wt x + b)
Montrer que,
N
X
J DN (w, b) = log exp(−Yi (wt Xi + b)) + 1 .
i=1
5
5. Calculer, pour j = 1, · · · , p
∂J DN (w, b)
.
∂wj
6. Calculer
∂J DN (w, b)
.
∂b
7. Ecrire l’algorithme de la descente de gradient stochastique afin d’approcher un minimiseur de la fonction
du coût J DN (w, b).
8. Ecrire cet algorithme en code Python (on pourra utiliser les indications ci-dessous).
def SGD_training(X, y, num_steps, learning_rate, batch_size):
return # compléter
On considère le problème simple suivant : chaque observation est décrite par deux variables discrètes, X (1)
et X (2) , toutes deux à valeurs dans {0, 1}. Le label associé à (X (1) , X (2) ) est donné par la variable Y à valeurs
dans {0, 1}. On observe les 4 réalisations suivantes :
(1) (2)
xi xi yi
1 1 0
1 0 1
0 1 1
0 0 1
6
Université Tunis Dauphine M1 BDIA
dim(Boston)
[1] 506 14
names(Boston)
"crim" "zn" "indus" "chas" "nox" "rm" "age"
"dis" "rad" "tax" "ptratio" "black" "lstat" "medv"
L’objectif est d’adapter un arbre de régression à l’ensemble de données de Boston afin d’expliquer et de prédire
la variable medv. On utilise les instructions suivantes :
library(MASS)
library(tree)
set.seed(1)
train = sample(1:nrow(Boston), nrow(Boston)/2)
tree.boston = tree(medv~., Boston, subset =train)
7
1. En quoi l’instruction set.seed est-elle utile ?
2. On obtient (grâce à l’instruction plot(tree.boston)) le graphe suivant :
Combien y-a-t-il de noeuds terminaux ? quelles sont les variables explicatives qui ont construit cet arbre ?
combien y a-t-il de variables explicatives au total ?
3. On obtient :
>summary(tree.boston)
Regression tree:
tree(formula = medv~., data = Boston, subset = train)
Residual mean deviance : 12.65 = 3099 / 245
A quoi correspond la valeur 12.65 ? Quelle est la formule mathématique correspondante ?
4. On voudrait maintenant appliquer les forêts aléatoires aux données de Boston, en utilisant le package
randomForest dans R. On utilise les instructions suivantes :
library(randomForest)
set.seed(1)
Forest.boston =randomForest(medv~.,data=Boston, subset =train, mtry=13, ntree =500,
importance=TRUE)
Expliquer ces instructions. A quoi correspond l’instruction mtry=13 ?
|α + β1 x1 + β2 x2 |
d(x, P(α, β)) = ,
∥β∥
p
avec ∥β∥ = β12 + β22 .
8
(A) Cas linéairement séparables. Soit Dn = {(xi , yi )1≤i≤n } avec xi ∈ R2 et yi ∈ {−1, 1}. On suppose
dans ce paragraphe que les points sont linéairement séparables.
Oncherche à determiner l’équation du "meilleur"
xi1
hyperplan séparant les deux classes +1 et -1. On note xi = . On dira que ce point est bien classé si
xi2
yi = +1 si et seulement si xi ∈ P + (α, β) et
yi = −1 si et seulement si xi ∈ P− (α, β)
1. Rappeler la définition, ainsi que son expression, de la marge M d’un hyperplan par rapport au nuage de
points Dn .
2. Que doit vérifier la Marge M du "meilleur hyperplan" ?
3. Que veut dire la condition
yi (α + β1 xi1 + β2 xi2 ) ≥ M ∥β∥?
4. Ecrire un problème d’optimisation permettant de construire ce "meilleur hyperplan".
β
5. Ecrire un nouveau problème d’optimisation en effectuant le changement de variable suivant w = M ∥β∥
et b = M α∥β∥ .
(B) Cas non séparables. Dans ce cas, un problème d’optimisation, vu en cours, afin de trouver le meilleur
hyperplan consiste à minimiser la quantité :
n
1 X
∥w∥2 + γ ξi ,
2 i=1
w1
sous les contraintes ξi ≥ 0, yi (w1 xi1 + w2 xi2 + α) ≥ 1 − ξi , ∀ 1 ≤ i ≤ n avec w = . Le réel γ étant un
w2
hyperparamètre positif.
6. Que représente les quantités (ξi )1≤i≤n introduit dans le problème d’optimisation ci-dessus ?
7. À quoi correspond le cas γ = +∞ ?
8. Les deux figures ci-dessous sont une illustration de ce problème d’optimisation avec les deux valeurs
suivantes de γ ∈ {1000, 0.02}. Associer à chaque figure la valeur de γ correspondante. Justifier votre
réponse.
RN.fit= neuralnet(medv~tax+lstat,data.frame(Boston[Itrain,]))
plot(RN.fit)
9
et on obtient le graphe suivant :
10
Université Tunis Dauphine M1 BDIA
(1A) Prédire si un patient, hospitalisé en raison d’une crise cardiaque, va avoir une deuxième crise cardiaque.
La prédiction est basée, entre autres, sur des mesures cliniques pour ce patient.
(1B) Estimer la quantité de glucose dans le sang d’une personne diabétique en observant le spectre d’ab-
sorption infrarouge du sang de cette personne
(1C) Identifiez les numéros dans un code postal manuscrit à 5 chiffres, à partir d’une image.
(1D) On souhaite faire un profilage de clients dans l’objectif de cibler l’envoi de publicités. On dispose d’un
fichier de données de ces clients et on souhaite donc les regrouper en sous-groupes homogènes à partir
des données du fichier.
(2A) La méthode des K-plus proches voisins (K-NN) est une méthode paramétrique.
(2B) La méthode des K-plus proches voisins (K-NN) a une très bonne performance quand la dimension des
covariables (features ou inputs) est grande.
(2C) Le modèle de régression logistique est adapté à toutes les données.
(2D) Soit Dn = {(Xi , Yi )1≤i≤n } l’ensemble des données avec Yi ∈ {0, 1}. On a construit deux prédicteurs
de classification fˆ1 et fˆ2 . Sur Dn , l’erreur de prédiction pour fˆ1 est de 10% et celui pour fˆ2 est 0.1%. On
peut donc conclure que fˆ2 est meilleur que fˆ1 et choisir fˆ2 comme prédicteur.
fix(Hitters)
names(Hitters)
[1] "AtBat " "Hits" "HmRun " "Runs" "RBI"
[6] "Walks " "Years " "CAtBat " "CHits " "CHmRun "
[11] "CRuns " "CRBI" "CWalks " "League " "Division "
[16] "PutOuts " "Assists " "Errors " "Salary " "NewLeague "
> dim(Hitters )
[1] 263 20
> sum(is.na(Hitters$Salary))
[1] 0
11
On note par Yi le salaire du ième joueur, Xi le vecteur des variables explicatives associées à l’ième joueur.
On pose le modèle linéaire suivant
Yi = Xit β + ϵi , 1 ≤ i ≤ n
(ϵi )1≤i≤n étant des variables aléatoires centrées et β étant le vecteur des paramètres. On rappelle que Z t désigne
le vecteur (ligne) transposé du vecteur (colonne) Z.
1. En consultant les sorties de R ci-dessus, donner la valeur de n ainsi que les dimensions des vecteurs β et
Xi .
2. A quoi sert l’instruction sum(is.na(Hitters$Salary)) ?
On découpe l’échantillon (Xi , Yi )1≤i≤n en deux. L’échantillon d’entraînement de taille ntrain = 185 et
l’échantillon test de taille ntest . Les données, ainsi découpées, sont notées par (x.train, y.train) et (x.test, y.test).
Obs. X1 X2 X3 Y
1 0 3 0 Rouge
2 2 0 0 Rouge
3 0 1 3 Rouge
4 0 1 2 Vert
5 -1 0 1 Vert
6 1 1 1 Rouge
On découpe l’échantillon en deux : un échantillon d’entraînement comprenant les données relatives aux 4
premiers individus et donc un échantillon test comprenant les données relatives au 5ième et 6ième individus.
1. Calculer en utilisant la méthode KNN et pour les différentes valeurs de K = 1, · · · , 4 les prédictions
pour la première donnée de l’échantillon test (c’est-à-dire relative à la cinquième observation). On peut
présenter le résultat sous la forme d’un tableau.
2. Calculer en utilisant la méthode KNN et pour les différentes valeurs de K = 1, · · · , 4 les prédictions pour
la deuxième donnée de l’échantillon test (c’est-à-dire relative à la sixième observation).
3. En déduire l’erreur de prédiction sur l’échantillon test, pour chaque valeur de K.
4. Que vaut Kopt la valeur de K qui minimise cette erreur de prédiction ?
5. Quelle est la prédiction pour Y lorsque X1 = X2 = X3 = 0 pour cette valeur de Kopt .
12
6. Que faut-il faire pour trouver le "bon" K par la méthode de validation croisée 3-fold. ?
13