-->

Initiation à l'Intelligence Artificielle (IA) : Création Pas-à-Pas de Modèles d'IA avec Python

Creation de modèles d'IA avec Python

Pre-réquis:

  1. Comprendre les bases de l'IA et de l'apprentissage automatique
  2. Se familiariser avec les algorithmes d'apprentissage automatique
  3. Configuration de l'environment de Travail
  4. Concepts de bases en Python

Les outils utilisés dans ce tutoriel

Jupyter Notebook :

  • Description : Jupyter Notebook est un environnement interactif de développement qui permet d'écrire et d'exécuter du code en segments appelés cellules. Il est largement utilisé dans le domaine de la science des données et de l'apprentissage automatique pour créer des documents intégrant du code, des textes, des images et des visualisations.
  • Avantages : Facilite l'expérimentation, la visualisation interactive des résultats, et encourage la documentation en temps réel du code.

Venv (Virtual Environment) :

  • Description : Venv est un outil Python intégré permettant de créer des environnements virtuels isolés pour un projet spécifique. Il aide à gérer les dépendances et à éviter les conflits entre différentes versions de bibliothèques pour différents projets Python.
  • Avantages : Isolation des dépendances, facilité de gestion des environnements pour différents projets, prévention des conflits entre versions de bibliothèques.

NumPy :

  • Description : NumPy est une bibliothèque fondamentale pour le calcul scientifique en Python. Elle offre des structures de données puissantes, notamment des tableaux multidimensionnels (ndarray), et des fonctions mathématiques pour effectuer des opérations rapides sur ces tableaux.
  • Avantages : Manipulation efficace des tableaux, performances optimisées pour les calculs numériques, intégration transparente avec d'autres bibliothèques de calcul scientifique.

Matplotlib :

  • Description : Matplotlib est une bibliothèque de visualisation en 2D pour Python. Elle permet de créer des graphiques, des diagrammes et des visualisations de données de manière simple et flexible. Matplotlib est souvent utilisé en conjonction avec NumPy et Jupyter Notebook pour explorer visuellement les résultats.
  • Avantages : Grande flexibilité dans la création de graphiques, support pour divers types de visualisations, compatibilité avec Jupyter Notebook.

Seaborn :

  • Description : Seaborn est une bibliothèque de visualisation de données en Python basée sur Matplotlib. Elle simplifie la création de graphiques statistiques informatifs en fournissant des interfaces haut niveau pour dessiner des diagrammes tels que des graphiques en barres, des diagrammes en boîte et des diagrammes de dispersion avec des palettes de couleurs attrayantes.
  • Avantages : Création simple de visualisations statistiques, palettes de couleurs esthétiques, intégration transparente avec les DataFrames Pandas.

Pandas :

  • Description : Pandas est une bibliothèque destinée à la manipulation et à l'analyse de données en Python. Elle offre des structures de données performantes (notamment les DataFrames) pour faciliter le nettoyage, la transformation, l'agrégation et l'analyse de données tabulaires.
  • Avantages : Traitement efficace des données tabulaires, outils puissants pour la manipulation et l'analyse de données, intégration transparente avec d'autres bibliothèques.

Scikit-learn :

  • Description : Scikit-learn est une bibliothèque d'apprentissage automatique en Python qui propose des outils simples et efficaces pour la classification, la régression, le clustering, la réduction de dimension, et bien d'autres tâches. Elle s'intègre bien avec NumPy, Pandas et Matplotlib.
  • Avantages : Facilité d'utilisation, documentation exhaustive, grande variété d'algorithmes d'apprentissage automatique.


Préparation de l'environmment de Travail

1- Configuration de l'environnement de travail

Suivez Suivez le guide dans Configuration de l'environnement de travail pour installer VScode et les extensions Python et Jupyter.

2- Configuration d'un environmement virtuel avec Venv

  • Pourquoi un environnement virtuel ?

    Imaginez que vous construisez une maison. Vous avez besoin de différents outils et matériaux pour chaque étape de la construction : marteaux, clous, briques, etc. Si vous mélangez tous ces outils et matériaux dans un seul endroit, il sera difficile de trouver ce dont vous avez besoin et de travailler efficacement.

    C'est la même chose pour le développement d'IA en Python. Vous avez besoin de différentes bibliothèques et modules pour différents projets. Si vous installez toutes ces bibliothèques dans votre environnement Python principal, cela peut créer des conflits et des problèmes de compatibilité.

    Un environnement virtuel est comme un espace de travail séparé pour chaque projet. Il vous permet d'installer les bibliothèques et les modules dont vous avez besoin pour ce projet spécifique, sans affecter votre environnement Python principal.

Virtualenv et Venv sont tous deux des outils utilisés pour créer des environnements virtuels, mais il y a une différence subtile :
Venv : Il s'agit d'un module intégré à la bibliothèque standard de Python à partir de la version 3.3. Bien qu'il soit plus récent que Virtualenv, il offre des fonctionnalités similaires.
Virtualenv : C'est un package externe qui existe depuis plus longtemps. Il était largement utilisé avant que Venv ne soit inclus dans la bibliothèque standard de Python.

Dans ce tutoriel, nous allons utiliser Venv. Si pour une raison ou une autre, vous souhaitez utiliser Virtualenv, vous devez d'abord l'installer en utilisant la commande suivante dans votre terminal : pip install virtualenv ou python -m pip install --user vitrualenv

  • Création d'un environnement virtuel avec Venv

 Ouvrir l'invite de commande ou PowerShell:

  1. Faites un clic droit sur votre dossier de travail (Atelier_AEBM_IA), puis sélectionnez "Copier le chemin"Vous pouvez également sélectionner le dossier, puis utilisez Ctrl+Shift+C pour obtenir le même résultat.
  2. Dans l'invite de commande ou PowerShell, tapez cd suivi du chemin copié (par exemple : cd C:\Users\etiab\Desktop\Atelier_AEBM_IA).  Ceci vous permet de vous deplacer dans votre dossier de travail.

Créer l'environnement virtuel:

  • Choisissez un nom pour votre environnement virtuel (par exemple : "tuto_IA").
  • Tapez la commande suivante pour créer l'environnement :
python -m venv .tuto_IA

Si vous utilisez Virtualenv à la place de Venv, tapez plutôt :

python -m virtualenv .tuto_IA

  •  Activer et Désactiver l'environnement virtuel

Naviguez dans votre dossier de travail si vous n'y etes pas (avec la commande cd vue précédemment), puis tapez la commande suivante pour activer l'environnement virtuel :

.\.tuto_IA\Scripts\activate

Remplacez "tuto_IA" par le nom de votre environnement virtuel.

  •  Désactiver l'environnement virtuel

Pour désactiver l'environnement virtuel, Tapez la commande suivante :deactivate


3- Installation des bibliothèques IA

Assurez-vous d'avoir activé l'environnement virtuel avant d'installer les bibliothèques.

Pour installer une bibliothèque, utilisez le gestionnaire de paquets pip et la commande install suivie du nom de la bibliothèque.

Par exemple, pour installer la bibliothèque numpy, tapez :

pip install numpy

En cas d'échec de l'installation, recherchez sur internet comment installer la bibliothèque avec les bonnes configurations.

Pour installer les bibliothèques mentionnées dans ce tutoriel :Numpy : pip install numpy

-- Matplotlib : pip install matplotlib
-- Seaborn : pip install seaborn
-- Pandas : pip install pandas
-- Scikit-learn : pip install scikit-learn

Vous pouvez également installer plusieurs bibliothèques en une seule fois en les séparant par des espaces :

pip install numpy matplotlib seaborn pandas scikit-learn 

Notez que l'installation groupée est pratique pour gagner du temps.

En cas d'échec d'installation, recherchez sur internet comment installer la bibliothèque spécifique avec les configurations appropriées. (Utilisez par exemple la requête : "comment installer bibliothèqueXY").

En suivant ces étapes, vous créez un environnement virtuel isolé et installez les bibliothèques requises pour votre projet IA.


Remarque: Pour utiliser Jupyter Notebook dans votre environnement virtuel, vous devez installer la bibliothèque suivante :

  • Ipykernel : pip install ipykernel

Prise en main des bibliothèques installées

Une bibliothèque Python est comme une boîte à outils. Elle contient des modules et des fonctions pré-définies que vous pouvez utiliser dans vos scripts (codes) Python. Cela vous permet de gagner du temps et d'éviter de réinventer la roue.

En Python, les concepts de bibliothèque, module et fonction sont organisés de manière hiérarchique, formant une arborescence logique qui facilite la structuration et la compréhension du code. Une bibliothèque en python possède généralement la structure suivante:

Bibliothèque : nom_de_la_bibliothèque

├── Module : nom_du_module
│      ├── Fonction : nom_de_la_fonction
│      └── Fonction : ...

├── Module : ...
└── Module : ...

Fonction : est un bloc de code réutilisable, défini pour effectuer une tâche spécifique (ustensile)
Module : Un fichier Python contenant des fonctions et des variables liées (recette)
Bibliothèque : Un ensemble de modules qui traitent un domaine spécifique (livre de recettes)

Les fonctions, modules et bibliothèques sont les blocs de construction de vos programmes Python.

Utilisation des bibliothèques

Lancez VSCode et ouvrez votre dossier de travail. Ensuite créer un nouveau ficher et enregistrez.le avec l'extension ".ipynb" (pour indiquer qu'il s'agit d'un notebook).

Une fois le ficher créer, vous devez choisir le moteur d'exécution de ce fichier (le kernel) en suivante les étapes suivantes indiquées dans la capture.

Démarrage d'un notebook Jupyter dans Visual Studio Code

1. Ouvrir Visual Studio Code et votre dossier de travail

  • Lancez Visual Studio Code.
  • Ouvrez votre dossier de travail en cliquant sur Fichier > Ouvrir un dossier.

2. Créer un nouveau fichier notebook

  • Cliquez sur Fichier > Nouveau fichier.
  • Enregistrez le fichier avec l'extension .ipynb. Par exemple, "mon_premier_notebook.ipynb".

3. Choisir le moteur d'exécution (kernel) - Voir captures


Si le nom de votre environnement virtuel apparaît dans cette liste, cliquez dessus pour le sélectionner, et c'est TOUT. Sinon, cliquez sur la dernière option qui vous suggère d'utiliser d'autres kernels. Là, vous verrez les options suivantes :
Cliquez sur la première option (environnement Python). Normalement, la liste complète des environnements virtuels sur votre PC devrait apparaître ici.
 Cliquez finalement sur votre environnement pour le sélectionner.

Un notebook Jupyter est un outil interactif qui permet d'exécuter du code, d'afficher des résultats et de mélanger du texte et des images dans un seul document.

Il est composé de cellules, qui sont des blocs de code ou de texte.

Pour créer une nouvelle cellule, survolez la cellule existante avec le curseur en allant vers le bas. Vous verrez deux options : 1-code, 2-Markdown, comme illustré dans la capture ci-dessous :

Si votre cellule est destinée à recevoir du code Python, choisissez l'option 1. Sinon, s'il s'agit d'écrire du texte ou toute autre chose, choisissez l'option 2.


Importer une bibliothèque

Importer une bibliothèque signifie la charger dans votre environnement Python. Cela vous permet d'utiliser les fonctions et les classes qu'elle contient.
En Python, l'importation est le moyen de rendre accessible le code d'une bibliothèque dans votre script. Cela signifie que vous pouvez utiliser les fonctionnalités fournies par cette bibliothèque dans votre programme.

Voici comment importer une bibliothèque en Python :

  1. Ouvrez votre script Python (Par exemple le notebook que vous avez créer).
  2. Ajoutez la ligne suivante au début de votre script : import nom_de_la_bibliotheque
Remplacez "nom_de_la_bibliotheque" par le nom de la bibliothèque que vous souhaitez importer.
Par exemple, pour importer la bibliothèque "numpy", il vous suffit de vous tapez : import numpy

Une fois la bibliothèque importée, vous pouvez utiliser ses fonctions et ses modules.

Voici quelques exemples (Creer une nouvelle cellue pour chaque exemple):

  • Pour afficher la version de la bibliothèque "numpy" :
import numpy  #ceci permet d'importer numpy

print(numpy.__version__) # affichage la version de numpy
  • Pour créer un liste de nombres avec la bibliothèque "numpy" :

import numpy

array = numpy.array([1, 2, 3])

print(array)

Les alias ou renommation des bibliothèques

Un alias est un autre nom pour une variable ou une bibliothèque.
L'utilisation d'alias ou la renommation des bibliothèques en Python est une pratique courante pour simplifier le code et améliorer la lisibilité.
Il peut être utile de renommer une bibliothèque pour :
  • Raccourcir le nom.
  • Éviter les conflits de noms avec d'autres bibliothèques.
  • Rendre le code plus lisible.
Pour créer un alias, vous utilisez le mot-clé as :
import numpy as np # np est maintenant un alias de numpy

Vous pouvez ensuite utiliser l'alias dans le reste de votre code. L'exemple precedment peut devenir alors:
import numpy as np #ceci permet d'importer numpy et le renomer en np print(np.__version__) # Affichage de la version version de Numpy

Pratiques: Importer les autres bibliothèques que vous avez installé et affichez leurs versions

Importer des modules et fonctions spécifiques

L'importation de modules entiers est pratique pour accéder à un grand nombre de fonctions et de variables. Cependant, pour des besoins ponctuels, il est possible d'importer uniquement les éléments nécessaires. Cela permet d'améliorer la lisibilité du code et d'éviter de charger des modules volumineux qui ne sont utilisés que partiellement.
Pour importer des modules et fonctions spécifiques, on utilise le mot-clé from suivi du nom du module et d'une liste des éléments à importer. La syntaxe est la suivante :
from <nom_module> import <nom_fonction1>, <nom_fonction2>, ...

Prenons l'exemple de la bibliothèque NumPy, qui propose un grand nombre de fonctions pour la manipulation de tableaux (listes) de données. Supposons que nous avons besoin uniquement des fonctions array et sum. Voici comment les importer :

from numpy import array, sum

# Créer un tableau NumPy
x = array([1, 2, 3, 4])

# Calculer la somme des éléments du tableau
total = sum(x)

print(total) # Affiche 10

Avantages de l'importation sélective
  • Lisbilité accrue: Le code est plus clair et plus facile à comprendre car il ne contient que les éléments nécessaires.
  • Efficacité accrue: Le temps de chargement du code est réduit car seuls les modules et fonctions utilisés sont importés.
  • Modularité accrue: Le code est plus modulaire et peut être plus facilement réutilisé dans d'autres projets.


Dévéloppement d'un modèle IA 
Dans cette section, nous allons plonger dans le monde passionnant du développement de modèles d'intelligence artificielle (IA) en nous concentrant sur la classification des fleurs d'iris. Cette tâche classique de l'apprentissage automatique nous permettra d'explorer et de mettre en pratique divers concepts, des préparations de données à l'évaluation de la performance des modèles.
L'Iris est une fleur aux multiples variétés, et notre objectif est de construire un modèle capable de discerner ces variétés en fonction de certaines caractéristiques telles que la longueur et la largeur des pétales et des sépales. Ce projet pratique servira de fil conducteur pour comprendre comment créer, entraîner et évaluer des modèles de classification, et cela même si vous êtes un débutant enthousiaste dans le domaine de l'IA.
Pour accomplir cette mission, nous suivrons les étapes suivantes :

Étape 1 : Comprendre le Jeu de Données Iris

Le jeu de données (dataset, en anglais) IRIS contient des informations sur différentes espèces de fleurs Iris, avec quatre caractéristiques mesurées en centimètres : longueur et largeur des sépales, et longueur et largeur des pétales.
Il existe 3 espèces de fleurs d'iris dans le dataset : Iris setosa, Iris versicolor et Iris virginica

Chaque fleur est décrite par 6 caractéristiques :
  • Un identifiant unique (Id)
  • La longueur de ses sépales (sepal length)
  • La largeur de ses sépales (sepal width)
  • La longueur de ses pétales (petal length)
  • La largeur de ses pétales (petal length)
  • Son espèce (species)
Le dataset IRIS contient des informations sur 150 fleurs d'iris dont 50 pour chaque espèce.
Pour charger et visualiser ce jeu de données, suivez ces étapes préliminaires : 1. Téléchargez le jeu de données en cliquant ici 👉 Lien de Téléchargement
2. Déplacez le fichier téléchargé "Iris.csv" dans votre dossier de travail. Notez que votre navigateur peut télécharger le fichier au format compressé. Dans ce cas, assurez-vous de décompresser (extraire) le fichier avant de le déplacer dans votre dossier de travail.
3. Lancez VSCode et ouvrez votre dossier de travail (si ce n'est pas déjà fait).
4. Créez un nouveau fichier notebook avec l'extension ".ipynb". Par exemple : mon_premier_ia.ipynb.
5. Activez votre environnement virtuel en sélectionnant le noyau (kernel) dont le nom correspond à l'environnement virtuel que vous avez créé. Une fois le fichier notebook créé et l'environnement virtuel activé, vous êtes prêt(e) à charger et explorer les données.

Étape 2 : Charger et Explorer les Données

Chargez le jeu de données Iris en utilisant la bibliothèque pandas et explorez les premières lignes pour comprendre la structure. Identifiez les caractéristiques (features) et la variable cible (target) que vous prévoyez de prédire. Pour effectuer le chargement des données, nous utiliserons la bibliothèque pandas. Créez une cellule et ajoutez-y le code suivant (Assurez-vous que le fichier "Iris.csv" est dans le même répertoire que votre fichier Python) :

# 1. Importer la bibliothèque Pandas et renommé en pd
import pandas as pd
# 2. Charger le dataset Iris.csv
dataset = pd.read_csv("Iris.csv")
# 3. Afficher les premières lignes du dataset
dataset.head()

Vous deviez voir quelques choise comme ça:

Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
Félicitaions déjà si vous êtes arrivés là. Notez quà partir d'ici, vous devez ecrire cahque nouveau code dans une nouvelle cellule pour garder l'historique de votre travail d'exploration.

Vous pouvez egalement voir les derniers lignes en utilisant le code suivant (dans une nouvelle cellule evidemement)

# 3. Afficher les dernières lignes du dataset
dataset.tail()
Vous pouvez aussi afficher l'entierté des données en utlilisnt le fameux print
print(dataset)

Notez que l'affciage serà tronquée par le script pour economiser de l'espcae.


Pour un apercu general sur l'enemble des données l'ensemble des données, utilisez:

dataset.info()

Ceci pour vous permettra d'obtenir un aperçu général du dataset, incluant ses dimensions, types de données, et valeurs nulles.


Résumez les statistiques descriptives des variables numériques:

print(dataset.describe())

D'autres explorations:

# Explorez les distributions des variables
dataset.hist(figsize=(10, 6)) # Examinez les relations entre variables: la matrice de correlation
dataset.corr()

Vous pouvez consulter la documentation de pandas ici 👉 https://pandas.pydata.org/docs/ pour plus d'options.

Étape 3 : Visualizer les Données

La visualisation des données est une étape cruciale pour comprendre la distribution et les relations entre différentes caractéristiques. Utilisons matplotlib et seaborn pour créer des graphiques informatifs sur le jeu de données Iris.
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# Chargement des données dataset = pd.read_csv("Iris.csv")
# Pairplot pour visualiser les relations entre les caractéristiques
sns.pairplot(dataset, hue='Species', height=2.5)
plt.show()
# Boîte à moustaches pour chaque caractéristique
plt.figure(figsize=(12, 8))
for i, feature in enumerate(dataset.columns[1:-1]):
plt.subplot(2, 2, i+1)
sns.boxplot(x='Species', y=feature, data=data) plt.title(f'{feature} Distribution by Class') plt.tight_layout() plt.show()

# Matrice de corrélation pour évaluer les relations entre les caractéristiques
plt.figure(figsize=(10, 8))
sns.heatmap(dataset.corr(), annot=True, cmap='coolwarm', linewidths=.5)
plt.title('Matrice de Corrélation')
plt.show()

Cette étape de visualisation vous permettra d'obtenir des informations cruciales sur la distribution des caractéristiques et les relations entre les différentes classes dans le jeu de données Iris. N'hésitez pas à explorer davantage pour mieux comprendre la structure des données.

Remarques : L'exploration et la visualisation des données visent à acquérir une compréhension approfondie du jeu de données, ce qui permet ensuite une meilleure préparation avant l'entraînement d'un modèle de manière efficace. Ce sont des étapes cruciales dans le processus d'apprentissage automatique et permettent en général de :

  • Comprendre la structure et les caractéristiques des données.
  • Identifier d'éventuelles anomalies ou incohérences.
  • Détecter des relations et des structures cachées.
  • Sélectionner les variables les plus pertinentes pour le modèle.
  • Choisir la méthode de préparation des données la plus appropriée.

Étape 4 : Préparer les Données

La préparation des données est essentielle pour garantir que votre modèle d'IA peut apprendre efficacement à partir des données disponibles. Dans cette étape, nous allons diviser les données en ensembles d'entraînement et de test, et standardiser les caractéristiques. Pour ça, nous allons utiliser scikit-learn, une bibliothèque populaire pour l'apprentissage automatique en Python.

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# Supprimer la colonne 'Id' si elle existe en decommentant la ligne suivante
# dataset = dataset.drop('Id', axis=1)

# Diviser les données en caractéristiques (X) et variable cible (y)
X = dataset.drop('Species', axis=1)
y = dataset['Species']
# Diviser les données en ensembles d'entraînement et de test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Standardiser les caractéristiques pour une meilleure performance du modèle
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

Explication :

train_test_split : Cette fonction divise les données en ensembles d'entraînement et de test. L'argument test_size=0.3 indique que 30% des données seront utilisées pour le test.
StandardScaler : Cet outil standardise les caractéristiques en ajustant la moyenne à zéro et l'écart-type à un. Cela garantit que toutes les caractéristiques ont la même échelle, ce qui est important pour certains algorithmes.

Cette étape garantit que les données sont prêtes pour être utilisées dans le modèle, en assurant une comparabilité entre les différentes caractéristiques. La standardisation est particulièrement importante pour les algorithmes sensibles à l'échelle des caractéristiques, comme les k-NN.

Étape 5 : Construire le Modèle

Nous allons maintenant utiliser l'algorithme des k plus proches voisins (K-NN) pour construire notre premier modèle d'IA. Scikit-learn facilite grandement ce processus.

from sklearn.neighbors import KNeighborsClassifier
# Initialiser le modèle K-NN
model = KNeighborsClassifier(n_neighbors=3)
# Entraîner le modèle sur les données d'entraînement
model.fit(X_train, y_train)
# Faire des prédictions sur les données de test
predictions = model.predict(X_test)

Explication :
  • KNeighborsClassifier : C'est le modèle K-NN. L'argument n_neighbors=3 indique que le modèle considérera les 3 voisins les plus proches pour faire une prédiction.
  • fit : Cette méthode entraîne le modèle sur les données d'entraînement.
  • predict : Cette méthode génère des prédictions sur les données de test.
Avec ces quelques lignes de code, vous avez construit et entraîné un modèle K-NN. Passons à l'étape suivante pour évaluer la performance de notre modèle.

Étape 6 : Évaluer le Modèle et Visualiser les Résultats

Après avoir construit et entraîné notre modèle K-NN, évaluons sa performance sur les données de test.

from sklearn.metrics import accuracy_score, classification_report, confusion_matrix # Évaluer la précision du modèle accuracy = accuracy_score(y_test, predictions) print(f'Précision du modèle K-NN : {accuracy:.2%}\n') # Afficher le rapport de classification print('Rapport de Classification :\n', classification_report(y_test, predictions)) # Afficher la matrice de confusion conf_matrix = confusion_matrix(y_test, predictions) print('Matrice de Confusion :\n', conf_matrix)

Explication :
  • accuracy_score : Cette fonction mesure la précision du modèle en comparant les prédictions aux vraies valeurs.
  • classification_report : Fournit un rapport détaillé incluant la précision, le rappel et le score F1 pour chaque classe.
  • confusion_matrix : Affiche une matrice montrant les vrais positifs, vrais négatifs, faux positifs et faux négatifs.
Ces évaluations vous donneront un aperçu complet de la performance du modèle. Continuez à affiner et à améliorer votre modèle en fonction des résultats obtenus.
Voilà ! Vous avez maintenant créé votre premier modèle d'IA sur le dataset Iris. N'hésitez pas à explorer davantage en ajustant les paramètres du modèle ou en essayant d'autres algorithmes. 
Happy coding!



Étape Bonus : Comparaison de Plusieurs Modèles de Classification

Pour une évaluation approfondie, comparons les performances de plusieurs modèles de classification sur les données de test.

from sklearn.neighbors import KNeighborsClassifier

from sklearn.svm import SVC from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.linear_model import LogisticRegression

from sklearn.metrics import accuracy_score, classification_report, confusion_matrix # Initialiser différents modèles models = { 'K-NN': KNeighborsClassifier(n_neighbors=3), 'SVM': SVC(), 'Arbre de Décision': DecisionTreeClassifier(), 'Forêt Aléatoire': RandomForestClassifier(), 'Régression Logistique': LogisticRegression() } # Évaluer et comparer les performances de chaque modèle for name, model in models.items(): model.fit(X_train, y_train) predictions = model.predict(X_test) # Mesurer la précision accuracy = accuracy_score(y_test, predictions) print(f'Précision du modèle {name} : {accuracy:.2%}') # Afficher le rapport de classification print(f'Rapport de Classification {name} :\n', classification_report(y_test, predictions)) # Afficher la matrice de confusion conf_matrix = confusion_matrix(y_test, predictions) print(f'Matrice de Confusion {name} :\n', conf_matrix) print('\n' + '-'*50 + '\n')

Explication :
-- Nous avons créé un dictionnaire models qui contient différents modèles de classification, chacun étant initialisé avec ses paramètres par défaut. Les modèles inclus sont le K-NN, le SVM, l'Arbre de Décision, la Forêt Aléatoire, et la Régression Logistique.
--Nous avons ensuite utilisé une boucle for pour itérer à travers chaque modèle du dictionnaire. Pour chaque modèle, nous l'avons entraîné sur les données d'entraînement, fait des prédictions sur les données de test, puis mesuré et affiché sa précision, son rapport de classification, et sa matrice de confusion.

Cela permet une comparaison directe des performances de différents modèles, vous aidant à choisir celui qui convient le mieux à votre problème spécifique. N'hésitez pas à ajuster les paramètres des modèles ou à en explorer d'autres en fonction des résultats obtenus. Pour plus d'information sur comment personnaliser ces modèles, voir la documentation à la fin.

En plus, voici comment vous pourriez organiser les résultats dans un tableau comparatif des performances des différents modèles :

import pandas as pd # Initialiser un dictionnaire pour stocker les résultats results = {'Modèle': [], 'Précision': [], 'Rappel': [], 'F1-Score': []} # Entrainer, Évaluer et stocker les performances de chaque modèle for name, model in models.items(): model.fit(X_train, y_train) predictions = model.predict(X_test) # Mesurer la précision, le rappel et le score F1 accuracy = accuracy_score(y_test, predictions) report = classification_report(y_test, predictions, output_dict=True) # Stocker les résultats dans le dictionnaire results['Modèle'].append(name) results['Précision'].append(accuracy) results['Rappel'].append(report['weighted avg']['recall']) results['F1-Score'].append(report['weighted avg']['f1-score']) # Créer un DataFrame à partir des résultats results_df = pd.DataFrame(results)

# Stocker au format csv

# results_df.to_csv("results_df.csv", index=False)

# Afficher le tableau comparatif print(results_df)

Ce script utilise la bibliothèque Pandas pour créer un DataFrame à partir des résultats, ce qui rend la comparaison des performances plus lisible et facile à interpréter. Vous pouvez ajuster et personnaliser le tableau selon vos besoins spécifiques.

Documentation des bibliothèques Python pour la science des données 

1. NumPy:2. Matplotlib:3. Seaborn:4. Pandas:5. scikit-learn:

Remarque:
Ces liens vous dirigent vers les documentations officielles et les tutoriels en anglais. N'hésitez pas à utiliser des outils de traduction si nécessaire.
Ces bibliothèques sont essentielles pour la science des données et l'apprentissage automatique en Python. Leur maîtrise vous permettra de manipuler, analyser et visualiser des données efficacement.

Publier un commentaire

Plus récents Le plus ancien