# Разделение train/test со стратификацией

Читает датасет CSV/JSON и делит на train/validation/test со стратификацией по целевому столбцу (по умолчанию 70/15/15, воспроизводимое зерно) или стратифицированный k-fold; отчёт о распределении классов по сплитам с полосами отклонения, проверка утечек через дубликаты строк, предпросмотр SMOTE (интерполяция ближайших соседей на train) и экспорт CSV в ZIP.

> Каноническая страница: https://elysiatools.com/ru/tools/train-test-split-with-stratification

- **Категория:** Data Analysis

- **Ключевые слова:** стратифицированный сплит, train validation test, k-fold, smote, распределение классов, воспроизводимое зерно

## Обзор

Стратифицированное разбиение: каждый класс перемешивается засеянным PRNG (mulberry32), затем члены распределяются по сплитам методом наибольших остатков — доли классов повторяют датасет; режим k-fold следует семантике StratifiedKFold: после перемешивания класса назначение round-robin (элемент j → фолд j mod k). SMOTE (Chawla и др. 2002) — только предпросмотр на train: для миноритарного образца x_i берётся один из его k=5 миноритарных соседей x_z и синтезируется x_new = x_i + λ·(x_z − x_i), λ∈U(0,1), по числовым столбцам (евклидова метрика). Зерно даёт воспроизводимость (поток отличается от PCG64 в numpy, поведение эквивалентно и задокументировано). Защита от редких классов: предупреждение, если классов меньше, чем сплитов; в k-fold при k больше минимального класса — отказ, как в sklearn.

## Входные данные

- **Файл датасета (CSV или JSON)** (file): CSV with a header row, or a JSON array of objects
- **Или вставьте CSV (с заголовком)** (textarea): age,income,label 23,42000,A 41,71000,B …
- **Целевой столбец (метка класса)** (text): label
- **Режим разбиения** (select)
- **Процент обучения** (number)
- **Процент валидации** (number)
- **Число фолдов (k)** (number)
- **Случайное зерно** (number)
- **Стратифицировать по целевому столбцу** (checkbox)
- **Перемешать строки перед разбиением** (checkbox)
- **Предпросмотр SMOTE (обучающий сплит)** (checkbox)
- **Экспорт CSV-сплитов в ZIP** (checkbox)

## Когда использовать

- Подготовка несбалансированных классификационных датасетов для ML-моделей, где критически важно сохранить долю редких классов во всех выборках.
- Формирование обучающих и проверочных подвыборок для стратифицированной k-fold кросс-валидации без смещения пропорций.
- Проверка качества разбиения данных на предмет утечек через повторяющиеся строки и предварительная оценка синтеза миноритарных классов методом SMOTE.

## Как это работает

- Загрузите файл CSV/JSON или вставьте табличный текст с заголовком и укажите имя целевого столбца с метками классов.
- Выберите режим разбиения: классический сплит (train/validation/test с настройкой процентных долей) или стратифицированный k-fold, задав случайное зерно для воспроизводимости.
- При необходимости активируйте предпросмотр SMOTE-передискретизации для обучающей выборки и проверку на строки-дубликаты.
- Изучите отчет о распределении классов по сплитам с полосами отклонений и скачайте ZIP-архив с готовыми CSV-файлами и JSON-отчетом.

## Сценарии использования

- Подготовка обучающих выборок для задач кредитного скоринга и выявления фрода с сильным дисбалансом классов.
- Организация честной 4- или 5-фолдовой валидации для классификации текстов и отзывов без потери редких категорий.
- Экспресс-аудит табличного датасета перед обучением моделей на наличие скрытых дубликатов между обучающей и тестовой частями.

## Частые вопросы

### Как обеспечивается воспроизводимость разбиения данных?

Сплит выполняется с использованием псевдослучайного генератора чисел с фиксированным зерном (randomSeed), что гарантирует одинаковое распределение строк при повторных запусках.

### Как инструмент обрабатывает слишком редкие классы?

Если количество объектов класса меньше числа сплитов или фолдов, алгоритм выводит предупреждение или отклоняет операцию аналогично StratifiedKFold в scikit-learn.

### Применяется ли SMOTE к валидационной и тестовой выборкам?

Нет, синтез новых объектов по алгоритму SMOTE выполняется исключительно для обучающего сплита, предотвращая утечку синтетических данных в валидацию и тест.

### Какие форматы входных данных поддерживаются?

Поддерживаются файлы CSV с первой строкой заголовков, текстовый ввод CSV через форму, а также файлы JSON, содержащие массив объектов.

### Что входит в итоговый ZIP-архив?

Архив содержит отдельные CSV-файлы для каждой выборки или каждого фолда кросс-валидации, а также манифест split_report.json с метриками распределения.

## Связанные инструменты

- [Анализатор прогноза и сезонности](https://elysiatools.com/ru/tools/time-series-forecast-seasonality-analyzer): Строит прогноз по CSV или JSON временным рядам и показывает тренд, сезонность и остатки в одном отчете
- [Планировщик миграции CSV в базу данных](https://elysiatools.com/ru/tools/csv-to-database-migration-planner): Выводит реляционную схему из CSV и генерирует CREATE TABLE и ALTER для PostgreSQL, MySQL, SQLite или SQL Server
- [Водяные знаки для CSV/JSON данных](https://elysiatools.com/ru/tools/csv-json-data-watermarker): Встраивает видимые или сигнатурные поля в CSV/JSON-экспорт для последующего отслеживания
- [Детектор дисбаланса датасета и ресемплер](https://elysiatools.com/ru/tools/dataset-imbalance-detector-resampler): Выявляет дисбаланс классов в CSV или JSON, сравнивает стратегии ресемплинга и показывает сбалансированный набор
- [Профилировщик качества датасетов](https://elysiatools.com/ru/tools/dataset-quality-profiler): Строит профиль качества CSV или JSON, выявляя пропуски, дубли, дрейф форматов и выбросы.
- [Генератор PDF-плана тренировок](https://elysiatools.com/ru/tools/fitness-workout-pdf-generator): Создает печатный PDF-план тренировок из JSON или CSV с таблицами, ячейками прогресса и QR-кодами
- [Генератор JSON-LD из CSV](https://elysiatools.com/ru/tools/json-ld-generator-from-csv): Преобразует строки CSV или Excel в Schema.org JSON-LD для Article, Product или Event с результатом, готовым к SEO-проверке
- [Конструктор глав подкаста (ID3 / Podcasting 2.0)](https://elysiatools.com/ru/tools/podcast-chapter-marker-builder): Вставьте список глав с таймкодами и получите сразу все форматы: JSON глав Podcasting 2.0 (v1.2.0) и RSS-тег podcast:chapters, опциональное вписывание фреймов ID3v2.4 CHAP+CTOC прямо в загруженный MP3 (миллисекунды — обычный big-endian uint32, смещения 0xFFFFFFFF, подфрейм TIT2 на главу, существующие фреймы сохраняются), пары Vorbis-комментариев CHAPTER001 (OGG/Opus), текст mp4chaps, блок таймкодов для описания YouTube и SRT-сайдкар, плюс реальная матрица поддержки плеерами (Apple читает RSS-JSON с 2025; Pocket Casts/Overcast — только встроенный ID3; Spotify игнорирует и то, и другое).

## Примеры

- [CSV Примеры](https://elysiatools.com/ru/samples/csv-samples): Примеры CSV-файлов с различными типами данных, размерами и уровнями сложности
- [Примеры Python](https://elysiatools.com/ru/samples/python): Примеры кода Python и демонстрации Hello World
- [Примеры Коммуникации WebRTC в Реальном Времени](https://elysiatools.com/ru/samples/webrtc-samples): Комплексные примеры WebRTC для P2P аудио/видео коммуникации, каналов данных, обмена экраном и сервера сигнализации
- [Примеры Распределенного Трейсинга](https://elysiatools.com/ru/samples/distributed-tracing-samples): Комплексные примеры распределенного трейсинга с использованием Jaeger, OpenTelemetry и современных инструментов

## Связанные материалы

- [Инструменты JSON-обмена и перевода форматов](https://elysiatools.com/ru/hubs/json-convert): Сравните инструменты преобразования JSON для CSV, YAML, TOML, GraphQL, XML, Markdown, Excel, BSON, EDN и других структурированных форматов в одном хабе.
- [Инструменты конвертации регистра, кодировки и нормализации текста](https://elysiatools.com/ru/hubs/text-convert): Сравните в одном хабе конвертацию регистра, ширины символов, кодировок, работу с quoted-printable и встроенную нормализацию текста.
- [Инструменты экспорта CSV и конвертации таблиц](https://elysiatools.com/ru/hubs/csv-convert): Сравните преобразования CSV в Excel, JSON, HTML, Markdown, XML и текст в одном хабе для табличных обменных сценариев.
- [Инструменты для проверки, diff и преобразования JSON](https://elysiatools.com/ru/hubs/json-utility): Соберите в одном хабе инструменты для форматирования JSON, сравнения версий, проверки путей, валидации схем, объединения файлов и преобразования данных для API и data workflows.
