gdgfdfgdtrdtrdt
Ahjghjgjhgdd jdgd
Le code suivant charge vos images, les redimensionne et les convertit en tableaux NumPy :
import os
import numpy as np
from PIL import Image
from sklearn.model_selection import train_test_split
def charger_donnees(chemin_dossier):
"""Charge les images depuis un dossier et ses sous-dossiers."""
images = []
labels = []
for dossier_label in [Link](chemin_dossier):
chemin_dossier_label = [Link](chemin_dossier, dossier_label)
if [Link](chemin_dossier_label):
for nom_fichier in [Link](chemin_dossier_label):
if nom_fichier.endswith(".png"):
chemin_fichier = [Link](chemin_dossier_label, nom_fichier)
image = [Link](chemin_fichier).convert('L') # Convertir en niveaux de gris
image = [Link]((64, 64))
image_array = [Link](image).flatten() # Aplatir l'image
[Link](image_array)
[Link](int(dossier_label[0]) - 1) # Extraire le label (0, 1, 2, 3)
return [Link](images), [Link](labels)
chemin_donnees = "chemin/vers/votre/dossier/jeu_donnees_formes_geometriques"
X, y = charger_donnees(chemin_donnees)
3. Division des données
Divisez vos 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)
4. Entraînement d'un modèle
Utilisons un classificateur de machine learning simple, comme une régression logistique :
from sklearn.linear_model import LogisticRegression
modele = LogisticRegression(max_iter=1000)
[Link](X_train, y_train)
5. Évaluation du modèle
Évaluez les performances du modèle sur l'ensemble de test :
from [Link] import accuracy_score, classification_report
y_pred = [Link](X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Précision : {accuracy}")
print(classification_report(y_test, y_pred))
6. Visualisation des résultats (facultatif)
Vous pouvez visualiser quelques images de test et leurs prédictions :
import [Link] as plt
def afficher_predictions(images, labels_vrais, labels_predits, noms_classes, nombre_images=25):
"""Affiche les images avec leurs labels vrais et prédits."""
[Link](figsize=(10, 10))
for i in range(nombre_images):
[Link](5, 5, i + 1)
[Link]([])
[Link]([])
[Link](False)
[Link](images[i].reshape(64, 64), cmap=[Link])
couleur = "vert" if labels_predits[i] == labels_vrais[i] else "rouge"
[Link](f"{noms_classes[labels_predits[i]]} ({noms_classes[labels_vrais[i]]})", color=couleur)
[Link]()
noms_classes = ["Carré", "Triangle", "Rectangle", "Cercle"]
afficher_predictions(X_test, y_test, y_pred, noms_classes)
merci pour
er