Vous êtes sur la page 1sur 5

Lab1: Discriminant Linear Classification (TP1)

Pr. Zineb El Akkaoui

Travail préparé par : Haddoumi imane

Année universitaire : 2023 / 2024


1. What is the aim of the make$_$classification() function? What is the role of ,!each of its
parameters?

La fonction make_classification () de scikit-learn a pour objectif de générer un jeu de données de


classification synthétique pour tester et expérimenter avec des algorithmes d'apprentissage
automatique.

1. n_samples : Ce paramètre détermine le nombre d'échantillons ou de points de données dans le jeu


de données. Dans notre code, il est défini à 1000, ce qui signifie que on veut générer un jeu de
données avec 1000 points de données.

2. n_features: Ce paramètre spécifie le nombre de caractéristiques (ou attributs) dans le jeu de


données. Dans notre code, il est défini à 10, ce qui signifie que chaque point de données aura 10
caractéristiques.

3. n_informative: Ce paramètre contrôle le nombre de caractéristiques informatives. Les


caractéristiques informatives sont celles qui influencent réellement la variable cible (étiquettes de
classe). Dans notre code, il est défini à 10, ce qui signifie que toutes les 10 caractéristiques sont
informatives.

4. n_redundant : Ce paramètre détermine le nombre de caractéristiques redondantes. Les


caractéristiques redondantes sont des caractéristiques supplémentaires qui n'apportent pas
d'informations nouvelles et qui sont générées comme combinaisons linéaires des caractéristiques
informatives. Dans notre code, il est défini à 0 .

5. random_state: Ce paramètre est utilisé pour initialiser le générateur de nombres aléatoires. Il


garantit que le jeu de données est reproductible. En le réglant sur 1, on peut assurez que si on
exécute le code avec les mêmes paramètres à nouveau, on obtient le même jeu de données.

2. What is the resulted data shape?

La sortie de cette ligne affiche les dimensions de X et y, qui représentent respectivement la matrice
de caractéristiques (données) et le vecteur de cibles (étiquettes de classe).
La matrice de caractéristiques X a une forme de (1000, 10), ce qui indique qu'il y a 1000 échantillons
(lignes) et 10 caractéristiques (colonnes) dans les données.

Le vecteur de cibles y a une forme (shape) de (1000,), ce qui signifie qu'il y a 1000 étiquettes de classe
correspondant aux échantillons de données.

3. Write in your words the three steps that have been implemented by the aforementioned code.

La première étape consiste à la génération de données en utilisant make_classification. Les données


sont générées avec des caractéristiques spécifiques, telles que le nombre d'échantillons, le nombre
de caractéristiques, le nombre de caractéristiques informatives, et aucune caractéristique
redondante. Puis on’a créer une instance du modèle LDA ,ensuite, le modèle est entraîné avec les
données générées (X) et les étiquettes de classe correspondantes (y). Cela permet au modèle
d'apprendre à classifier les données en utilisant l'analyse discriminante linéaire.Finalement , la
troisième étape est l'évaluation du modèle LDA à l'aide de la validation croisée répétée. Pour cela,
une stratégie de validation croisée répétée est définie avec un nombre de plis (split) et de répétitions
spécifiés. Ensuite, la fonction `cross_val_score` est utilisée pour évaluer le modèle sur les données
générées en utilisant la précision comme métrique de performance. La précision moyenne ainsi que
l'écart-type des précisions obtenues lors de la validation croisée répétée sont ensuite affichés pour
résumer les performances du modèle.

4. Explain how the model is created ?

En résumé, le modèle est créé de la manière suivante dans le code fourni :

On commence tout d’abord par l’Importation des bibliothèques nécessaires : telles que NumPy et
scikit-learn qui sont importées pour utiliser des fonctions et des classes spécifiques.puis on génére un
jeu de données synthétique à l'aide de la fonction `make_classification` de scikit-learn. Ce jeu de
données contient des caractéristiques (`X`) et des étiquettes de classe (`y`).Ensuite, on crée le modèle
LDA à l'aide de la classe `LinearDiscriminantAnalysis` de scikit-learn. Ce modèle est initialisé et prêt à
être entraîné pour ensuite entrainer le modèle en utilisant les données d'entraînement (`X` et `y`)
pour apprendre à discriminer entre différentes classes.La définition de la stratégie de validation croisée
est une stratégie de validation croisée est définie à l'aide de `RepeatedStratifiedKFold`, spécifiant le
nombre de plis et de répétitions pour évaluer la performance du modèle de manière robuste en
utilisant la validation croisée avec la fonction `cross_val_score`. Cette étape calcule la précision du
modèle pour chaque pli de la validation croisée.Enfin, le code imprime la précision moyenne et l'écart-
type des précisions obtenues lors de la validation croisée, fournissant ainsi une mesure de la
performance du modèle.

5. How the accuracy is computed? What could you conclude on this accuracy?

La précision est calculée à l'aide de la fonction cross_val_scoredans le code fourni. Cette fonction
effectue une validation croisée, ce qui signifie qu'elle divise les données en plusieurs sous-ensembles
(plis), puis entraîne et impacte le modèle sur ces plis de manière itérative. Pour chaque pli, la
précision du modèle est calculée en comparant les prédictions du modèle aux étiquettes de classe
réelles. La précision est simplement le nombre de prédictions correctes divisé par le nombre total de
prédictions.

Le paramètre scoring='accuracy' spécifique que la précision est la métrique utilisée pour évaluer le
modèle .En conclusion, la précision obtenue est une mesure de la performance du modèle LDA sur le
jeu de données synthétiques. Une précision élevée indique que le modèle est capable de classifier
avec précision les données de ce jeu particulier, tandis qu'une précision faible indique que le modèle
a du mal à bien classer les données.

6. Explain how the repeated cross validation works? provide the meaning of the parameters.

La validation croisée répétée est une extension de la validation croisée standard. Dans ce cas, elle est
répétée plusieurs fois avec différentes divisions aléatoires des données. Cette répétition permet
d'obtenir des estimations de performances plus fiables, en particulier lorsque les données sont
limitées.

n_splits: Il s'agit du nombre de plis dans chaque division de la validation croisée. Dans ce code, il est
défini à 10, ce qui signifie que les données sont divisées en 10 plis pour chaque itération de la
validation croisée.

n_repeats: C'est le nombre de fois où la validation croisée est répétée avec différentes divisions
aléatoires des données. Dans ce code, il est défini à 3, ce qui signifie que l'ensemble du processus de
validation croisée est répété trois fois avec des divisions de données différentes à chaque fois.

random_state: Il s'agit d'une graine aléatoire (seed) utilisée pour garantir que les divisions des
données sont reproductibles. En utilisant la même graine, les mêmes divisions de données seront
générées à chaque exécution du code.

7. Explain the objective of this code :

Ce code effectue une prédiction à l'aide d'un modèle de classification préalablement entraînée sur de
données synthétiques à l'aide de la méthode de l'Analyse Discriminante Linéaire (Linear Discriminant
Analysis, LDA).
Les premières lignes importent les bibliothèques nécessaires depuis scikit-learn.
make_classificationest utilisé pour générer des données synthétiques, tandis que
LinearDiscriminantAnalysisest utilisé pour créer un modèle LDA. Ces données, stockées dans la liste
row, représentent une nouvelle observation avec 10 caractéristiques (variables) spécifiques. Vous allez
utiliser le modèle pour prédire la classe de cette nouvelle observation. LDA est préalablement entraîné
pour effectuer une prédiction sur la nouvelle observation row. La méthode predictprend en entrée une
liste d'observations (dans ce cas, une seule observation) et retourne la classe prédite pour cette
observation. Enfin, cette ligne de code affiche la classe prédite pour la nouvelle observation. La classe
prédite ( yhat) est affichée dans la console.

Vous aimerez peut-être aussi