Importation, préparation des données et imputation
Importation et analyse des données
- [x] Créer `load_data` dans `src/data_processing/load_data.py` pour charger `house_prices.csv`.
- [x] Retourner un `pd.DataFrame` + métadonnées de chargement.
- [x] Importer et tester dans le notebook.
- [x] Explorer : dtypes, `describe()`, aperçu.
- [x] Visualiser les valeurs manquantes (heatmap).
Préparation des données (colonnes + NA + traçabilité)
- [x] Normaliser les noms de colonnes (`normalize_column_names`).
- [x] Identifier les valeurs manquantes par colonne.
- [x] Supprimer lignes cibles manquantes, colonnes à forte proportion de NA, colonnes problématiques.
- [x] Conserver un **log/métadonnées** des transformations.
- [x] Retourner `df_cleaned` + `cleaningmetadata`.
Imputation
- [x] Implémenter `split_data` dans `src/data_science/data.py`.
- [x] Mélanger aléatoirement avec graine (SEED).
- [x] Découper en `X_train, y_train, X_test, y_test`.
- [x] Implémenter `build_preprocessor` dans `src/data_processing/preprocess.py` (scikit-learn) :
- `SimpleImputer(strategy="median")` pour numériques
- `SimpleImputer(strategy="most_frequent")` pour catégorielles
- [x] Implémenter `prepare_data` (dans `src/data_science/data.py`) qui :
- construit le préprocesseur avec `build_preprocessor(X_train)`
- **fit_transform** sur **X_train**, **transform** sur **X_test**
- **retourne** `X_train_clean`, `y_train`, `X_test_clean`, `y_test`, `preprocessor`, `num_cols`, `cat_cols`
- [x] Tester dans le notebook et afficher vérifs NA (avec `DataFrame.isnull()` après re-wrap).
- [x] Mettre à jour le dataset nettoyé et sauvegarder en `data/interim/`.