Python · Machine Learning · Deep Learning

Détection Pierre-Papier-Ciseaux

Collection de projets du cours Python été 2026, couvrant les bases de la syntaxe Python, la prédiction par régression en Machine Learning, l'analyse des données de comportement étudiant, et la reconnaissance de gestes Pierre-Papier-Ciseaux basée sur YOLO11n.

Démo de détection Pierre-Papier-Ciseaux
Project 1

Exercices de base Python

14 exercices d'introduction : types de données, contrôle de flux, fonctions, listes et dictionnaires — couverture complète des bases syntaxiques.

Project 2-1

Prédiction des prix immobiliers

Régression par Random Forest pour prédire le prix médian des logements en Californie, R² = 0,805. Confirmation que le revenu et la localisation géographique sont les facteurs d'influence clés.

Project 2-2

Analyse du comportement étudiant

Jeu de données réel Kaggle, analyse de l'impact du temps d'étude et du temps d'écran sur le CGPA, comparaison multi-modèles.

Project 3

Reconnaissance de gestes YOLO11n

🪨📄✂️ Détection en temps réel de Ciseaux/Pierre/Feuille, mAP50 sur l'ensemble de validation = 0,940, inférence à l'échelle de la milliseconde.

Project 1

Fondamentaux de la programmation Python

Exercices de programmation Python de niveau débutant, sans dépendances tierces

Types de données

  1. 1.1.py — Carré d'un entier positif
  2. 1.2.py — Sortie formatée des informations d'admission
  3. 1.3.py — Longueur de l'hypoténuse d'un triangle rectangle

Opérateurs & expressions

  1. 2.1.py — Distance euclidienne entre deux points
  2. 2.2.py — Somme des cubes des chiffres d'un nombre à trois chiffres
  3. 2.3.py — Nombre d'occurrences d'une lettre (insensible à la casse)

Contrôle de flux & fonctions

  1. 3.1-3.2 — Niveau de note / Type de caractère
  2. 4.1-4.2 — Détermination du nombre de chiffres / Somme factorielle
  3. 5.1-5.2 — Encapsulation de fonctions et calculs mathématiques
  4. 6.1-6.2 — Compréhensions de liste / Mappage de dictionnaire
Project 2-1

Prédiction des prix immobiliers en Californie — Régression Random Forest

scikit-learn · California Housing Dataset

Jeu de données

California Housing — Jeu de données intégré à scikit-learn

  • Taille de l'échantillon : 20 640 enregistrements de quartiers
  • Nombre de caractéristiques : 8 (revenu médian, âge du logement, nombre de pièces, population, localisation géographique, etc.)
  • Cible : MedHouseVal (prix médian du logement, $100K)

Évaluation du modèle

MSE 0.2552
RMSE 0.5052
0.8053

Top 4 de l'importance des caractéristiques

MedInc (revenu médian) > AveOccup (occupation moyenne) > Latitude / Longitude (localisation géographique) > HouseAge

Le niveau de revenu est le facteur prédictif le plus fort pour les prix immobiliers ; l'importance de la localisation reflète les écarts de prix entre différentes régions de Californie.

Python scikit-learn Random Forest Pandas Matplotlib
Project 2-2

Analyse du comportement numérique et de la performance académique des étudiants

Jeu de données réel Kaggle · Régression linéaire vs Random Forest

Jeu de données

Student Lifestyle and Academic Performance (Kaggle)

  • 12 champs : Age, Branch, Study_Hours, Sleep_Hours, Screen_Time, Gym, Diet, Attendance, Stress, Residence, Internal_Marks, CGPA
  • Variable cible : CGPA (moyenne cumulative, 0~10)
  • Exclusion de Internal_Marks pour éviter les fuites de données

Processus de nettoyage des données

  • Sélection des champs → Déduplication
  • Champs numériques : imputation par la médiane des valeurs manquantes
  • Champs catégoriels : imputation par le mode
  • Filtrage des valeurs aberrantes (plages raisonnables pour l'âge, le temps d'étude, etc.)
  • Variables catégorielles : encodage one-hot (drop_first)

Analyse visuelle (6 graphiques)

Distribution du temps d'écran

Distribution asymétrique à droite, la majorité des étudiants passent 3~8 heures par jour devant un écran

Temps d'étude vs CGPA

Corrélation positive claire, les étudiants étudiant 6~8 h/jour ont généralement un CGPA plus élevé

Top 3 de l'importance des caractéristiques

Temps d'étude > Taux d'assiduité > Temps d'écran

Python Linear Regression Random Forest Pandas Seaborn EDA
Project 3

Reconnaissance de gestes Pierre-Papier-Ciseaux — YOLO11n

🪨📄✂️ Ultralytics · PyTorch · Détection d'objets

Jeu de données

rock-paper-scissors-sxsw (Roboflow v11)

  • Total de 15 874 images
  • Ensemble d'entraînement 14 966 / Validation 588 / Test 320
  • 3 classes : Paper (Feuille), Rock (Pierre), Scissors (Ciseaux)
  • Taille d'entrée : 640×640

Augmentation des données

Génération de 7 versions augmentées par image originale :

  • Retournement horizontal (50%), rotation aléatoire ±12°
  • Cisaillement ±2°, luminosité/exposition ±25%
  • Flou gaussien 0~1,5 px, bruit poivre-et-sel 1%

Configuration d'entraînement

ModèleYOLO11n (2.58M params)
Epochs50
Batch16
OptimiseurAdamW
Durée d'entraînement~3.07h
GPURTX 5060 (8GB)

Résultats d'évaluation

Ensemble de validation

mAP50 (global) 0.940
mAP50-95 0.697
Précision (P) 0.942
Rappel (R) 0.891
Vitesse d'inférence < 2.1ms

Ensemble de test

mAP50 (global) 0.934
mAP50-95 0.693
Précision (P) 0.898
Rappel (R) 0.920

Performance par classe

📄 Paper

Validation mAP500.936
Test mAP500.904

🪨 Rock

Validation mAP500.943
Test mAP500.951

✂️ Scissors

Validation mAP500.940
Test mAP500.947

Modes d'application

Inférence sur image unique

Reconnaissance sur n'importe quelle photo de geste, les résultats sont annotés sous forme de boîte englobante + étiquette, sauvegardés dans le répertoire de sortie.

predict.py

Détection en temps réel par caméra

Utilisation de la caméra système (1280×720) pour une capture en temps réel, inférence à l'échelle de la milliseconde par image, affichage du taux de trames FPS dans la fenêtre, appuyez sur Q pour quitter.

detect.py

Scripts d'évaluation

Évaluation sur l'ensemble de validation, évaluation sur l'ensemble de test, outil de téléchargement du jeu de données, couverture complète du flux d'entraînement au déploiement.

evaluate.py / test.py
Python PyTorch YOLO11n Ultralytics OpenCV Roboflow CUDA