Année 2023 - 2024 Nature Examen
Diplôme Ingénieur Mécatronique Session Principale Janvier 2023
Filière ING-MEQ-3 Date et heure 06-01-2024 à 9h
Classe 3ème Année Nombre de pages 04 pages
Module Machine Learning Documents Non Autorisés
Enseignant Hamza Rahmani Calculatrice Non Autorisé
Exercice 1 (5 points) : choisissez les bonnes réponses
1. Qu'est-ce que KNN signifie en apprentissage automatique ?
a. Kernel Neural Network
b. K-Means Nearest Neighbors
c. K-Nearest Neighbors
d. Kernel Nearest Nodes
2. Quel est l'objectif principal de l'algorithme K-means ?
a. Classification supervisée
b. Régression linéaire
c. Regroupement (clustering)
d. Classification non supervisée
3. Quelle est la fonction d'activation couramment utilisée dans un perceptron ?
a. Sigmoid
b. Tanh
c. ReLU
d. Toutes les réponses ci-dessus
1
4. Comment les arbres de décision prennent-ils des décisions?
a. En utilisant des fonctions de coût
b. En utilisant des règles de décision basées sur les caractéristiques
c. En appliquant des techniques de réduction de dimension
d. En utilisant des réseaux de neurones profonds
5. Quel est le principe fondamental derrière un Random Forest ?
a. Utiliser un seul arbre de décision
b. Combinaison de plusieurs arbres de décision
c. Utiliser un seul voisin le plus proche
d. Appliquer la descente de gradient stochastique
6. Quelle est la principale caractéristique d'un MLP par rapport à un simple perceptron ?
a. Utilisation de la régression linéaire
b. Utilisation de plusieurs couches de neurones
c. Utilisation de la fonction tangente hyperbolique
d. Utilisation de la régression logistique
7. Comment fonctionne l'algorithme KNN pour la classification ?
a. Il ajuste une ligne de régression aux données
b. Il assigne une classe en fonction de la majorité des voisins les plus proches
c. Il utilise des fonctions de coût pour minimiser l'erreur
d. Il applique une transformation linéaire aux caractéristiques
8. Comment fonctionne l'initialisation des centroïdes dans l'algorithme K-means ?
a. De manière aléatoire
b. En utilisant les points de données les plus éloignés
c. En utilisant la moyenne des points de données
d. En utilisant la médiane des points de données
2
9. Comment mesure-t-on la pureté d'un nœud dans un arbre de décision ?
a. indice de décision
b. indice de Gini
c. indice de Gili
c. Toutes les réponses ci-dessus
10. Quel est l'avantage principal d'un Random Forest par rapport à un seul arbre de décision ?
a. Plus de rapidité d'exécution
b. Réduction de l'overfitting (le sur-apprentissage)
c. Meilleure interprétabilité
d. Utilisation de la régression logistique
Exercice 2 (10 points) : répondre brièvement aux questions suivantes
1. Pourquoi on divise généralement le jeu de données (dataset) en partie train et partie test ?
2. Dans quel cas on applique le modèle perceptron.
3. Citer les 4 principes fondamentaux de l’apprentissage supervisé.
4. A quoi consiste l’opération d’imputation des données en machine Learning ?
5. Quand est ce que on utilise l’encodage OneHot au lieu de l’encodage ordinal ?
Expliquer la différence entre eux brièvement.
6. Quelle différence entre les transformateurs MinMaxScaler et StandardScaler de
sklearn.
7. Quelle différence entre apprentissage supervisé et apprentissage non supervisé ?
8. Quelle est la différence entre classification et régression ?
9. Ça veut dire quoi hyperparamètre ? Citer 2 hyperparamètres pour le modèle KNN.
10. Le choix du nombre de voisins k est primordial pour le modèle KNN. Discuter le choix
de ce paramètre ?
3
Exercice 3 (5 points) : Remplissez les espaces vides par les expressions adéquates
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import …………………
#afficher les cinq premiers exemples du dataset
print(X……………………………….)
#afficher les dimensions du dataset
print(X…………………………………)
# Split the data into 70% training data and 30% test data
X_train, X_test, y_train, y_test = ……………………………………(X, y, test_size=……………….)
model = ……………………………………………………………….(n_neighbors = 5)
# entrainer le modèle
model………………..(X_train,y_train)
#afficher le score
score=model.score(……………………………………..,……………………………….)
print(score)
#prédire les sorties
y_pred=model……………………………(y_test)
#calculer de nouveau le score
score= r2_score(………………………,……………………………….)
print(score)