Vous êtes sur la page 1sur 3

Année 2022 - 2023 Nature Examen

Diplôme Ingénieur Mécatronique Session Principale Janvier 2023


Filière ING-MEQ-3 Date et heure 05-01-2023 à 11h
Classe 3ème Année Nombre de pages 03 pages
Module Machine Learning Documents Non Autorisés
Enseignant Hamza Rahmani Calculatrice Non Autorisé

Exercice 1 (5 points) :

1. Quelle différence entre apprentissage supervisé et apprentissage non supervisé ?


2. Citer 2 modèles d’apprentissage supervisé et un modèle d’apprentissage non
supervisé.
3. Citer les 4 principes fondamentaux de l’apprentissage supervisé.
4. A quoi consiste l’opération d’encodage des variables en machine Learning ?
5. Quel est le rôle de l’algorithme d’apprentissage (descente du gradient) dans le
modèle perceptron ?
6. Donner les formules de la mise à jour des paramètres (poids et biais) lors de
l’entrainement du modèle perceptron.
7. Pourquoi on divise généralement le jeu de données (dataset) en partie train et partie
test ?
8. Quel est le rôle des centroïdes dans le modèle k-means et comment on les choisie au
début ?
9. Cité 2 hyperparamètres pour chacun des modèles k-means, perceptron et KNN.
10. Est-ce que KNN est adapté pour une utilisation temps réel ? pourquoi ?

Exercice 2 (5 points) :

Le code suivant contient 3 fonctions Python et permet d’implémenter le modèle perceptron ‘from
scratch’. Commentez chacune des lignes du code afin d’expliquer le fonctionnement du modèle
perceptron.

1
def predict(row, weights):
activation = weights[0]
for i in range(len(row)-1):
activation += weights[i + 1] * row[i]
return 1.0 if activation >= 0.0 else 0.0

def train_weights(train, l_rate, n_epoch):


weights = [0.0 for i in range(len(train[0]))]
for epoch in range(n_epoch):
for row in train:
prediction = predict(row, weights)
error = row[-1] - prediction
weights[0] = weights[0] + l_rate * error
for i in range(len(row)-1):
weights[i + 1] = weights[i + 1] + l_rate * error * row[i]
return weights

def perceptron(train, test, l_rate, n_epoch):


predictions = list()
weights = train_weights(train, l_rate, n_epoch)
for row in test:
prediction = predict(row, weights)
predictions.append(prediction)
return(predictions)

Exercice3 (10 points)

Expliquer brièvement le rôle de chacune des expressions soulignées dans les codes suivants.

Code1 :

from sklearn.preprocessing import StandardScaler,OneHotEncoder

from sklearn.impute import SimpleImputer

numerical_pipeline=make_pipeline(SimpleImputer(),StandardScaler())

categorical_pipeline=make_pipeline(SimpleImputer(strategy='most_frequent'),OneHotEncoder())

Code2 :

import pandas as pd

df = pd.read_csv('C:/Users/dell/Desktop/titanic.csv')

df.tail()

df.shape

df.describe()

2
Code 3 :

df.isnull().sum()

df.drop(['Cabin', 'Ticket', 'PassengerId', 'Name'], axis=1, inplace=True)

df.dropna(inplace=True)

df['Age']=df.Age.fillna(df['Age'].mean(), inplace=True)

imp = SimpleImputer(strategy='median')

df['Age']=imp.fit_transform(df[['Age']])

Code4 :

import matplotlib.pyplot as plt

from sklearn.cluster import KMeans

model=KMeans(n_clusters=3)

model.fit(X)

pred=model.predict(X)

Vous aimerez peut-être aussi