Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

EF ML TekUP 22-23

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 7

Ecole Supérieure Privée Technologies &

Ingénierie
Type d’épreuve : Devoir Examen
SESSION PRINCIPALE
Enseignant : Tlili Radhouene
Matière : Intelligence Artificielle
Année Universitaire : 2020-2021 Semestre : 1
Classe : CII-3-DMDW-A
Documents : Autorisés X Non autorisés
Date : 13/12/2022 Durée : 1h30mn
Nombre de pages : xx
Barème : 20

Questions de cours :
NB : Répondez à 20 questions de cours parmi les questions proposées

1. Cochez les bonnes réponses :


a. Le machine learning (ML) est un domaine de l’intelligence artificielle
b. L’intelligence artificielle est un domaine du machine learning
c. Le machine learning est un sous-domaine du deep leraning
d. Le deep learning est un sous-domaine du machine learning
e. Le machine learning est la capacité de programmer des ordinateurs
explicitement
f. Le machine learning est la capacité de programmer des ordinateurs
à partir de données et d’expériences passées
2. On fait appel au ML quand on est face à un problème :
a. pour lequel un algorithme efficace existe
b. pour lequel on n’a pas d’algorithme
c. pour lequel on a un algorithme de complexité très élevée
3. Cochez les bonnes réponses :
a. La reconnaissance du genre musical d’un morceau de musique est
un problème de reconnaissance de formes
b. La reconnaissance du genre musical d’un morceau de musique est
un problème de classification
c. La reconnaissance du genre musical d’un morceau de musique est
un problème de régression
d. Le regroupement de morceaux de musique par genre est un
problème non supervisé
4. Selon que l’algorithme de ML nécessite ou non une intervention humaine
en phase d’apprentissage, nous classons les algorithmes de ML comme
suite :
a. supervisé, non supervisé, instance-based
b. supervisé, non supervisé, semi-supervisé
c. supervisé, non supervisé, semi-supervisé, par renforcement
5. Cochez les bonnes réponses :
a. K-ppv est un algorithme de ML model-based
b. Linear Regression est un algorithme de ML model-based
6. Pour résoudre un problème par ML :
a. On a besoin uniquement de données
b. On a besoin de données et d’un algorithme d’apprentissage
c. On a besoin de données, d’un algorithme d’apprentissage et de la
sélection d’un modèle
7. Cochez les bonnes réponses :
a. Un problème de classification est un problème non supervisé
b. Un problème de classification est un problème où la cible est
continue
c. Un problème de classification est un problème où la cible est
discrète
8. Cochez les bonnes réponses :
a. Logistic Regression est un algorithme de régression
b. Linear Regression est un algorithme qui peut être utilisé en
classification et en régression
c. Decision Tree est un algorithme qui peut être utilisé en classification
et régression
d. K-ppv ne peut être utilisé qu’en classification
9. Cochez les bonnes réponses :
a. Decision Tree convient aux données multimodales
b. La complexité de Decision Tree augmente avec la profondeur de
l’arbre
c. La complexité de k-ppv augmente quand le nombre de voisins (k)
augmente
d. La complexité de Linear Regression pour un modèle polynomial
augmente quand le degré du polynôme diminue
10.Cochez les bonnes réponses :
a. Quand la complexité du modèle augmente, il fait de l’over-fitting
b. Quand la complexité du modèle augmente, il fait de l’under-fitting
11.Cochez les bonnes réponses :
a. K-means est un algorithme de ML supervisé
b. ACP est un algorithme de ML non supervisé
12.Pour représenter en 3D des données multidimensionnelles en ayant le
minimum de perte possible :
a. On choisit 3 parmi les caractéristiques des données et on les
représente selon ces 3 dimensions
b. On choisit à l’aide de l’algorithme ACP (PCA) les 3 premières
dimensions et on représente les données selon ces 3 dimensions
13.Vrai ou faux : En classification binaire, Logistic Regression est moins
sensible aux données aberrantes qu’un algorithme utilisant le principe de
minimisation de l’erreur quadratique.
14.Vrai ou faux : L’algorithme Naive Bayes est qualifié de naïf parce qu’il fait
l’hypothèse que les caractéristiques sont indépendantes ?
15.Cochez les bonnes réponses :
a. Gaussian Naive Bayes convient aux caractéristiques binaires
b. Bernoulli Naive Bayes convient aux caractéristiques binaires
c. Multinomial Naive Bayes convient aux caractéristiques dont les
valeurs sont des compteurs d’occurrences
d. Multinomial Naive Bayes est très utilisé en classification
automatique de documents
16.Vrai ou faux : Scikit leran implémente uniquement l’algorithme de Decision
Tree CART ?
17.Cochez les bonnes réponses :
a. Dans une procédure de ML, on ne représente les données par des
data frames pandas que pendant la phase de préparation des
données pour l’apprentissage
b. En scikit learn, on ne représente les données que par une matrice
numpy pour les traiter par un algorithme de ML
c. En scikit learn, il est possible de passer les données à un algorithme
de ML dans une data frame pandas
18.A quoi sert la méthode train_test_split du module
sklearn.model_selection ? Pourquoi faut-il l’utiliser ?

La méthode train_test_split du module sklearn.model_selection


sert à diviser un ensemble de données en deux sous-ensembles
distincts : un ensemble d'entraînement (training set) et un ensemble
de test (test set). Il est essentiel de l'utiliser pour évaluer la
performance du modèle sur des données qu'il n'a pas vues pendant
l'entraînement, prévenir le surajustement, et optimiser les
hyperparamètres.

19.Que fait le bout de code Python suivant :


from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

Le code utilise la fonction train_test_split de scikit-learn pour


diviser les ensembles de données X et y en ensembles
d'entraînement ( X_train , y_train ) et de test ( X_test , y_test ). La
division est effectuée de manière aléatoire, et le paramètre
random_state=0 assure la reproductibilité de la division.

20.Après exécution du code précédent, quel pourcentage de données sera


placé dans X_train ?

Le code que vous avez fourni ne spécifie pas le paramètre


test_size dans la fonction train_test_split , ce qui signifie que la
taille par défaut de l'ensemble de test sera utilisée. Par défaut,
test_size est égal à 0.25, ce qui signifie que 25% des données
seront placées dans l'ensemble de test ( X_test , y_test ), et le reste
sera dans l'ensemble d'entraînement ( X_train , y_train ).

21.Après exécution du code suivant, quel pourcentage de données sera placé


dans X_train ? from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5,
random_state=0)

Le paramètre test_size=0.5 indique que 50% des données seront


placées dans l'ensemble de test ( X_test , y_test ), et donc les 50%
restants seront dans l'ensemble d'entraînement ( X_train , y_train ).
22.Après execution du code suivant, quelle quantité de données sera placé
dans X_train ?
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= 50,
random_state=0)

La correction du code serait d'utiliser test_size=0.5 au lieu de


test_size=50 . Ainsi, avec cette correction, 50% des données
seraient placées dans l'ensemble de test ( X_test , y_test ).

23.Ces deux instructions exécutées en séquence génèrent-elles les mêmes


data set ?
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

Non, les deux instructions généreraient des ensembles


d'entraînement et de test différents, car elles utilisent des valeurs
différentes pour le paramètre random_state dans la fonction
train_test_split .

24.Quel est le rôle du paramètre random_state dans la méthode


train_test_split ? Quelle valeur par défaut prend-il et que signifie cette
valeur ?

Le paramètre random_state dans train_test_split contrôle la


reproductibilité des résultats en fixant la séquence de génération
des nombres pseudo-aléatoires. Sa valeur par défaut est None, ce
qui signifie une randomisation différente à chaque exécution. En
fixant une valeur spécifique, comme random_state=0, vous assurez
la reproductibilité des résultats entre différentes exécutions.

25.Que fait ce bout de code ?


X_train, X_test, y_train, y_test = train_test_split( X, y, random_state=0,
train_size=0.5, stratify=y)

Le code divise les ensembles de données X et y en ensembles


d'entraînement ( X_train , y_train ) et de test ( X_test , y_test ). Il
fixe la séquence de génération des nombres pseudo-aléatoires,
spécifie que 50% des données seront dans l'ensemble
d'entraînement, et utilise stratify=y pour maintenir la proportion
des classes entre les ensembles.
26.Pour évaluer différents modèles sur les mêmes données faut-il préciser ou
non une valeur pour random_state ?

Il est recommandé de fixer une valeur pour random_state lors de


l'évaluation de différents modèles sur les mêmes données. Cela
garantit la reproductibilité des résultats entre les différents modèles,
facilitant ainsi une comparaison juste de leurs performances. En
spécifiant la même valeur pour random_state , vous vous assurez
que la division des données est la même pour chaque modèle, ce qui
est essentiel pour des comparaisons cohérentes.

27.Comment indiquer à Naive Base de ne pas calculer les probabilités à


priori ? quelles valeurs prend-il pour ces probabilités ? (priors=None)

Pour indiquer à l'algorithme Naive Bayes de ne pas calculer les


probabilités a priori dans scikit-learn, utilisez priors=None lors de la
création de l'instance du modèle Naive Bayes. Cela signifie que le
modèle estime automatiquement les probabilités a priori à partir des
données d'entraînement.

28.Donnez un exemple où il vaut mieux donner les probabilités à priori à


Naive Bayes au lieu de le laisser évaluer ces probabilités.

Dans le cas où vos données d'entraînement ne représentent pas


fidèlement la distribution réelle des classes, vous pourriez fournir
des probabilités a priori à Naive Bayes pour refléter ces
connaissances externes. Cela peut être particulièrement utile
lorsque les classes sont déséquilibrées et que vous avez des
informations sur la distribution réelle des classes qui ne sont pas
correctement capturées par vos données d'entraînement.

29.Que fait ce bout de code ?


from sklearn.decomposition import PCA
X_reduced = PCA(n_components=3).fit_transform(X)

Ce code utilise l'analyse en composantes principales (PCA) de scikit-


learn pour réduire la dimension des données X à trois dimensions.

30.Que fait ce bout de code ?


knn = KNeighborsClassifier(n_neighbors=9)
knn.fit(X_train, y_train)
from joblib import dump, load
dump(knn, 'MonModeleKNN.modele')

Ce code crée, entraîne un modèle k plus proches voisins (KNN) avec


9 voisins, et sauvegarde le modèle dans un fichier nommé
'MonModeleKNN.modele' à l'aide de la bibliothèque joblib.

Exercices
Exercice 1 :

Les deux figures ci-dessus représente deux nuages de points en fonction de


caractéristiques de fleurs d’Iris.

1. Quelle est à priori la meilleure caractéristique discriminante des trois


classes de fleurs ?

Exercice 2 :

Après apprentissage sur un ensemble de données, le modèle obtenu donne une


précision (taux de réussite) égale à 0.97 sur les données d’apprentissage.

1. Que peut-on conclure ?

Une précision élevée de 0.97 sur les données d'apprentissage


suggère que le modèle a bien appris les patterns présents dans ces
données. Cependant, il est important de vérifier la performance du
modèle sur un ensemble de test distinct pour évaluer sa capacité à
généraliser à de nouvelles données. Si la précision reste élevée sur
un ensemble de test indépendant, cela renforcerait la confiance
dans la performance du modèle.
Exercice 3 :

La figure suivante montre l’évolution de la précision de l’algorithme


d’apprentissage k-ppv sur un dataset en fonction de l’hyperparamètre k.

1. Que peut-on déduire de ce tracé ?


Exercice 4 :

On considère la matrice de confusion suivante d’un modèle de machine learning


à deux classes (tumeur maligne (YES) et tumeur bénigne (NO)) :

1. Que représente la diagonale ?


2. Que représente la case supérieure droite ?
3. Que représente la case inférieure gauche ?
4. Calculez le taux de réussite du modèle ?
5. Calculer le taux de faux positifs
6. Calculez le taux de faux négatifs

Vous aimerez peut-être aussi