# Découpage train/test stratifié

Lit un jeu de données CSV/JSON et le découpe en train/validation/test avec échantillonnage stratifié par la colonne cible (70/15/15 par défaut, graine reproductible), ou k-fold stratifié ; rapport de distribution des classes par split avec barres d'écart, contrôle des fuites par lignes dupliquées, aperçu SMOTE (interpolation des plus proches voisins sur le train) et export des CSV en ZIP.

> Page canonique: https://elysiatools.com/fr/tools/train-test-split-with-stratification

- **Catégorie:** Data Analysis

- **Mots-clés:** decoupage stratifie, train validation test, k-fold, smote, distribution de classes, graine reproductible

## Présentation

Découpage stratifié : chaque classe est mélangée avec un PRNG semé (mulberry32), puis ses membres sont répartis entre les splits au plus grand reste — les proportions par classe suivent le dataset ; le mode k-fold suit la sémantique StratifiedKFold : après mélange, attribution round-robin (le membre j va au pli j mod k). SMOTE (Chawla et al. 2002) en aperçu sur le train uniquement : pour une instance minoritaire x_i on prend un de ses k=5 voisins minoritaires x_z et on synthétise x_new = x_i + λ·(x_z − x_i), λ∈U(0,1), sur les colonnes numériques (distance euclidienne). La graine garantit la reproductibilité (flux différent du PCG64 de numpy, comportement équivalent et documenté). Classes rares : avertissement si une classe compte moins d'échantillons que de splits ; en k-fold, k au-delà de la classe minimale est rejeté comme le fait sklearn.

## Entrées

- **Fichier du jeu de données (CSV ou JSON)** (file): CSV with a header row, or a JSON array of objects
- **Ou collez du CSV (avec en-tête)** (textarea): age,income,label 23,42000,A 41,71000,B …
- **Colonne cible (étiquette de classe)** (text): label
- **Mode de découpage** (select)
- **Pourcentage d'entraînement** (number)
- **Pourcentage de validation** (number)
- **Nombre de folds (k)** (number)
- **Graine aléatoire** (number)
- **Stratifier par la colonne cible** (checkbox)
- **Mélanger les lignes avant de découper** (checkbox)
- **Aperçu du suréchantillonnage SMOTE (train)** (checkbox)
- **Exporter les CSV découpés en ZIP** (checkbox)

## Quand l'utiliser

- Pour préparer des jeux de données d'apprentissage automatique déséquilibrés en garantissant des proportions de classes identiques entre entraînement, validation et test.
- Lors de la configuration d'une validation croisée k-fold stratifiée reproductible grâce à une graine aléatoire maîtrisée.
- Pour auditer la distribution des classes et vérifier l'absence de fuites d'informations causées par des lignes dupliquées entre les partitions.

## Fonctionnement

- Importez votre fichier CSV/JSON ou collez vos données brutes avec en-têtes, puis renseignez le nom de la colonne cible.
- Sélectionnez le mode de partitionnement (pourcentages standard ou k-fold), ajustez la graine aléatoire et activez la stratification.
- L'algorithme mélange chaque classe avec un générateur pseudo-aléatoire mulberry32 et attribue les échantillons via la méthode du plus grand reste ou en round-robin.
- Inspectez le rapport de distribution avec barres d'écart, visualisez la synthèse SMOTE optionnelle et téléchargez l'archive ZIP contenant les CSV découpés et le fichier split_report.json.

## Cas d'usage

- Séparation rigoureuse de jeux de données tabulaires pour modèles de classification binaire ou multiclasse déséquilibrés.
- Génération de partitions k-fold stratifiées pour la validation croisée d'algorithmes d'apprentissage supervisé.
- Évaluation préalable de l'impact d'une augmentation de données par SMOTE sur la répartition des classes d'entraînement.

## Questions fréquentes

### Comment fonctionne la stratification des données ?

Chaque classe est isolée, mélangée individuellement à l'aide d'une graine aléatoire, puis ses instances sont réparties proportionnellement dans chaque split au plus grand reste ou en round-robin.

### Que contient le fichier ZIP exporté ?

L'archive contient l'ensemble des fichiers CSV découpés (train, validation, test ou fold_i_train/fold_i_validation) ainsi que le rapport détaillé split_report.json.

### Comment est calculé l'aperçu SMOTE ?

L'algorithme identifie les 5 plus proches voisins minoritaires sur les colonnes numériques (distance euclidienne) et interpole de nouvelles instances uniquement sur la partition d'entraînement.

### Comment la reproductibilité est-elle assurée ?

Le mélange et la distribution utilisent un PRNG mulberry32 basé sur la graine numérique configurable, garantissant un partitionnement identique à chaque exécution avec la même valeur.

### Que se passe-t-il si une classe compte trop peu d'échantillons ?

Un avertissement est affiché si une classe compte moins d'éléments que de splits, et le partitionnement k-fold est rejeté si k dépasse le nombre d'éléments de la classe la plus rare.

## Outils associés

- [Analyseur de prevision et de saisonnalite](https://elysiatools.com/fr/tools/time-series-forecast-seasonality-analyzer): Projette des periodes futures a partir de donnees CSV ou JSON et affiche tendance, saisonnalite et residus
- [Planificateur de migration CSV vers base de donnees](https://elysiatools.com/fr/tools/csv-to-database-migration-planner): Infere un schema relationnel a partir dun CSV et genere CREATE TABLE et ALTER pour PostgreSQL, MySQL, SQLite ou SQL Server
- [Filigraneur de donnees CSV/JSON](https://elysiatools.com/fr/tools/csv-json-data-watermarker): Injecte des champs de filigrane visibles ou signatures dans des exports CSV ou JSON pour la tracabilite
- [Detecteur de desequilibre et reechantillonneur](https://elysiatools.com/fr/tools/dataset-imbalance-detector-resampler): Detecte le desequilibre de classes dans un dataset CSV ou JSON, compare les strategies et previsualise un jeu equilibre
- [Profileur de qualite de dataset](https://elysiatools.com/fr/tools/dataset-quality-profiler): Profile des jeux CSV ou JSON pour detecter manquants, doublons, derive de format, types et outliers.
- [Generateur PDF de programme fitness](https://elysiatools.com/fr/tools/fitness-workout-pdf-generator): Genere un PDF imprimable dentrainement depuis JSON ou CSV avec tableaux, cases de suivi et QR optionnels
- [Generateur JSON-LD depuis CSV](https://elysiatools.com/fr/tools/json-ld-generator-from-csv): Transforme des lignes CSV ou Excel en JSON-LD Schema.org pour des articles, produits ou evenements avec une sortie prete a etre validee
- [Générateur de marqueurs de chapitres podcast (ID3 / Podcasting 2.0)](https://elysiatools.com/fr/tools/podcast-chapter-marker-builder): Collez une liste de chapitres horodatés et générez d'un coup tous les formats de livraison : JSON de chapitres Podcasting 2.0 (v1.2.0) et balise RSS podcast:chapters, gravure optionnelle des trames ID3v2.4 CHAP+CTOC dans un MP3 téléversé (millisecondes en uint32 big-endian simple, offsets 0xFFFFFFFF, sous-trame TIT2 par chapitre, trames existantes préservées), paires de commentaires Vorbis CHAPTER001 (OGG/Opus), texte mp4chaps, bloc d'horodatages pour la description YouTube et sidecar SRT, plus la matrice réelle de support des lecteurs (Apple accepte le JSON via RSS depuis 2025 ; Pocket Casts/Overcast ne lisent que l'ID3 embarqué ; Spotify ignore les deux).

## Exemples

- [Exemples CSV](https://elysiatools.com/fr/samples/csv-samples): Fichiers CSV d'exemple avec divers types de données, tailles et niveaux de complexité
- [Exemples Python](https://elysiatools.com/fr/samples/python): Exemples de code Python et démonstrations Hello World
- [Exemples de Communication Temps Réel WebRTC](https://elysiatools.com/fr/samples/webrtc-samples): Exemples complets WebRTC pour communication audio/vidéo P2P, canaux de données, partage d'écran et serveur de signalisation
- [Exemples de Traçage Distribué](https://elysiatools.com/fr/samples/distributed-tracing-samples): Exemples complets de traçage distribué utilisant Jaeger, OpenTelemetry et outils d'observabilité modernes

## Contenu associé

- [Outils d interchange JSON et de traduction de formats](https://elysiatools.com/fr/hubs/json-convert): Comparez les outils de conversion JSON pour CSV, YAML, TOML, GraphQL, XML, Markdown, Excel, BSON, EDN et d autres formats structures dans un meme hub.
- [Outils de conversion de casse, d’encodage et de normalisation de texte](https://elysiatools.com/fr/hubs/text-convert): Comparez les outils de conversion de casse, de largeur de caractères, d’encodage, de quoted-printable et de normalisation de texte dans un hub unique.
- [Outils d export CSV et de conversion de tableaux](https://elysiatools.com/fr/hubs/csv-convert): Comparez les conversions entre CSV et Excel, JSON, HTML, Markdown, XML et texte dans un meme hub pour les flux d echange tabulaire.
- [Outils d inspection, de diff et de transformation JSON](https://elysiatools.com/fr/hubs/json-utility): Regroupe dans un meme hub les outils de formatage JSON, comparaison, inspection de chemins, validation de schema, fusion et transformation pour les workflows API et donnees.
