spham b1c3606102 Réorganisation de la documentation
- Déplacement de GUIDE_DEBUTANT.md vers docs/
- Création de docs/INSTRUCTIONS.md (traduction française du .mdoc)
- Conversion des balises de templating en Markdown pur
- Structure plus claire avec dossier docs centralisé

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-12 18:27:29 +01:00
2025-11-12 17:34:59 +01:00
2025-11-12 17:34:59 +01:00
2025-11-12 18:27:29 +01:00
2025-11-12 17:34:59 +01:00
2025-11-12 17:34:59 +01:00

ML Model Generalization Lab

Objectif du Lab

Ce lab démontre les techniques essentielles pour améliorer la généralisation d'un modèle de Machine Learning et éviter l'overfitting (surapprentissage).

Concepts Clés

1. Split des Données (Train/Validation/Test)

Total: 2000 échantillons
├── Train: 64% (1280 échantillons) - entraînement du modèle
├── Validation: 16% (320 échantillons) - ajustement des hyperparamètres
└── Test: 20% (400 échantillons) - évaluation finale

Pourquoi 3 splits ?

  • Train : apprend les patterns
  • Validation : détecte l'overfitting pendant l'entraînement
  • Test : mesure la performance réelle sur des données jamais vues

2. Early Stopping

EarlyStopping(
    monitor='val_loss',
    patience=3,
    min_delta=0.01,
    restore_best_weights=True
)

Rôle : Arrête l'entraînement quand la val_loss ne s'améliore plus

  • Évite l'overfitting en stoppant avant que le modèle ne "mémorise" les données
  • Restaure les meilleurs poids (epoch 7 dans notre cas)

3. Learning Rate Scheduler

ReduceLROnPlateau(
    monitor='val_loss',
    factor=0.5,
    patience=2,
    min_lr=1e-5
)

Rôle : Réduit le learning rate quand l'apprentissage stagne

  • Learning rate initial : 0.05
  • Réduction par 2 après 2 epochs sans amélioration
  • Permet une convergence plus fine vers l'optimum

4. Architecture du Réseau

Input (20 features)
    ↓
Dense(64, relu)
    ↓
Dense(32, relu)
    ↓
Dense(1, sigmoid) → Probabilité binaire

Architecture simple mais efficace pour la classification binaire.

Résultats Obtenus

Métriques de Performance

Métrique Valeur
Accuracy 97%
Precision (classe 0) 95%
Precision (classe 1) 99%
Recall (classe 0) 99%
Recall (classe 1) 95%

Matrice de Confusion

              Prédictions
              0     1
Réel    0   [205    2]
        1   [ 10  183]
  • Vrais positifs : 183 + 205 = 388
  • Faux positifs : 2 + 10 = 12
  • Taux d'erreur : 3% seulement

Ce qu'il faut Retenir

Bonnes Pratiques Appliquées

  1. Toujours séparer les données en 3 ensembles distincts
  2. Utiliser la validation pour monitorer l'overfitting en temps réel
  3. Early stopping est crucial pour éviter le surapprentissage
  4. Learning rate adaptatif améliore la convergence
  5. Normalisation des features avec StandardScaler pour stabiliser l'apprentissage

📊 Signes d'une Bonne Généralisation

  • Performance similaire sur train et test
  • Val_loss se stabilise sans diverger
  • Le modèle s'arrête avant de surapprendre (epoch 10/100)
  • Métriques équilibrées entre les classes

⚠️ Signes d'Overfitting (absents ici)

  • Train accuracy >> Test accuracy
  • Val_loss augmente alors que train_loss diminue
  • Performance dégradée sur nouvelles données

Exécution

# Activer l'environnement virtuel
source venv/bin/activate

# Lancer Jupyter
jupyter notebook lab.ipynb

Technologies Utilisées

  • TensorFlow/Keras : construction et entraînement du réseau de neurones
  • Scikit-learn : génération de données, preprocessing, métriques
  • Python 3.12 : langage de programmation

Conclusion

Ce lab illustre qu'un modèle bien régularisé avec early stopping et learning rate scheduling peut atteindre d'excellentes performances (97%) tout en généralisant correctement sur des données non vues.

Principe fondamental : Un bon modèle ne mémorise pas les données, il apprend les patterns généraux.

Description
No description provided
Readme 98 KiB
Languages
Jupyter Notebook 100%