From 315183032f30c9d600aa303bf050ed9ebf179c66 Mon Sep 17 00:00:00 2001 From: spham Date: Fri, 14 Nov 2025 12:26:34 +0100 Subject: [PATCH] =?UTF-8?q?docs:=20Mise=20=C3=A0=20jour=20de=20la=20docume?= =?UTF-8?q?ntation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 55 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index af3abe9..ca7ebd1 100644 --- a/README.md +++ b/README.md @@ -255,9 +255,10 @@ scaler.transform(X_test) # Transforme seulement **IMPORTANT** : On apprend les statistiques (moyenne, écart-type) **uniquement** sur les données d'entraînement, puis on applique la **même transformation** aux données de test. #### À Retenir -✅ Toujours **fit** sur train, **transform** sur test -✅ Évite les **fuites de données** (data leakage) -✅ Améliore les **performances** du modèle + +- ✅ Toujours **fit** sur train, **transform** sur test +- ✅ Évite les **fuites de données** (data leakage) +- ✅ Améliore les **performances** du modèle --- @@ -280,9 +281,9 @@ joblib.dump((X_test, y_test), 'test_data.pkl') **Format .pkl** : Format de sérialisation Python (pickle) #### À Retenir -✅ Sauvegarde **après** la division train/test -✅ Permet de recharger les **mêmes données** plus tard -✅ Essentiel pour comparer différents modèles sur les **mêmes données** +- ✅ Sauvegarde **après** la division train/test +- ✅ Permet de recharger les **mêmes données** plus tard +- ✅ Essentiel pour comparer différents modèles sur les **mêmes données** --- @@ -297,6 +298,30 @@ model = keras.Sequential([ ]) ``` +> **⚠️ Note sur la Dépréciation (Deprecated)** +> +> L'utilisation de `input_shape` directement dans la première couche `Dense` est **dépréciée** dans les versions récentes de Keras/TensorFlow. Vous verrez cet avertissement : +> ``` +> UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. +> ``` +> +> **Méthode Moderne Recommandée** : +> ```python +> model = keras.Sequential([ +> keras.layers.Input(shape=(X_train.shape[1],)), # Couche Input séparée +> keras.layers.Dense(32, activation='relu'), +> keras.layers.Dense(16, activation='relu'), +> keras.layers.Dense(1, activation='sigmoid') +> ]) +> ``` +> +> **Pourquoi ce changement ?** +> - Plus claire : sépare l'entrée de la première couche +> - Plus flexible : facilite les architectures complexes +> - Meilleure pratique : suit les standards modernes de Keras +> +> **Dans ce lab** : Nous utilisons l'ancienne méthode pour la simplicité pédagogique, mais dans vos projets futurs, **utilisez la méthode moderne avec `Input()`**. + #### Architecture du Modèle ``` @@ -346,9 +371,9 @@ Sigmoid(+∞) = 1 - **Usage** : Couche de sortie pour classification binaire #### À Retenir -✅ **Sequential** = couches empilées les unes après les autres -✅ **Dense** = couche entièrement connectée -✅ **ReLU** pour les couches cachées, **Sigmoid** pour la sortie binaire +- ✅ **Sequential** = couches empilées les unes après les autres +- ✅ **Dense** = couche entièrement connectée +- ✅ **ReLU** pour les couches cachées, **Sigmoid** pour la sortie binaire --- @@ -383,9 +408,9 @@ model.compile( - **Exemple** : 95% d'accuracy = 95 prédictions correctes sur 100 #### À Retenir -✅ **Adam** est un excellent optimiseur par défaut -✅ **binary_crossentropy** pour la classification binaire -✅ **Compiler** avant d'entraîner le modèle +- ✅ **Adam** est un excellent optimiseur par défaut +- ✅ **binary_crossentropy** pour la classification binaire +- ✅ **Compiler** avant d'entraîner le modèle --- @@ -445,9 +470,9 @@ Epoch 20/20 | `val_accuracy` | Précision sur données de validation | #### À Retenir -✅ **Loss diminue** = le modèle apprend -✅ **val_loss >> loss** = surapprentissage (overfitting) -✅ Surveiller les deux métriques pour détecter les problèmes +- ✅ **Loss diminue** = le modèle apprend +- ✅ **val_loss >> loss** = surapprentissage (overfitting) +- ✅ Surveiller les deux métriques pour détecter les problèmes ---