Допустим, у вас есть 10 000 записей о клиентах, но целевой класс — отток — составляет жалкие 2%. Модель на реальных данных даёт AUC 0.65 — это провал. Или вы не можете передать датасет подрядчику, потому что там номера паспортов и кредитки. Знакомо? Мы решаем это с помощью генерации синтетических табличных данных. За 5+ лет мы обучили десятки моделей для fintech, e-commerce и medtech. Результат: AUC 0.9+ и полная анонимизация.
Какие проблемы решаем
Дисбаланс классов. Когда целевой класс составляет 1–5% выборки, модель на реальных данных даёт AUC ниже 0.7. Мы используем SMOTE и его вариации (Borderline-SMOTE, SMOTETomek) для синтетического увеличения миноритарного класса — AUC растёт до 0.9+.
Недостаток данных для тестирования. Ручное создание тестовых кейсов занимает недели. Генеративная модель может синтезировать 10 000+ строк за час с теми же статистическими свойствами, что и реальные данные.
Анонимизация. Заменяем чувствительные поля (номера карт, паспорта) на синтетические, сохраняя корреляции. Это позволяет передавать данные подрядчикам без нарушения GDPR/152-ФЗ.
Как выбрать метод генерации?
| Метод | Размерность данных | Время обучения | Качество (ML utility gap) | Ресурсы |
|---|---|---|---|---|
| CTGAN | До 50 признаков | 1–2 часа | < 5% | CPU/GPU 8GB |
| SMOTE | До 20 признаков | 5–30 минут | Зависит от дисбаланса | CPU |
| TabDDPM | Любая (до 1000+) | 4–12 часов | < 3% | GPU 16GB+ |
Мы начинаем с CTGAN — он даёт хорошие результаты в 80% проектов. Если данные сложные (модальные, высокая размерность), переходим на TabDDPM. Для быстрой балансировки без генерации новых признаков используем SMOTE.
Почему мы используем TSTR-оценку?
Классические метрики (Column Shapes) не гарантируют, что синтетика полезна для ML. TSTR (Train on Synthetic, Test on Real) — единственный надёжный способ: обучаем GradientBoosting на синтетике и сравниваем AUC с моделью на реальных данных. Разница менее 5% — признак качественной генерации. В одном из проектов с кредитными данными (50K строк, 30 признаков) мы достигли gap в 1.2%. Это подтверждает, что синтетика не уступает реальным данным.
ML utility gap: показатель качества синтетики
Это разница в метриках (AUC, F1) между моделью, обученной на реальных данных, и моделью, обученной на синтетике. Идеал — gap 0%. На практике ML utility gap < 5% считается отличным результатом. Мы стремимся к gap < 3%, и в 90% проектов это достижимо.
Как проходит обучение
- Анализ датасета — проверка типов, пропусков, распределений, дисбаланса.
- Выбор архитектуры — CTGAN / TabDDPM / комбинация со SMOTE.
- Обучение базовой модели — 100–500 эпох, подбор гиперпараметров (batch size, learning rate, слои).
- Оценка качества — TSTR, Column Shapes, визуализация корреляций.
- Доработка — увеличение эпох, настройка discriminator (для GAN), прунинг выбросов.
- Деплой — упаковка в ONNX или Docker, интеграция через REST API.
Сравнение архитектур генерации
| Характеристика | CTGAN | TabDDPM | SMOTE |
|---|---|---|---|
| Тип модели | GAN | Диффузионная | Оверсемплинг |
| Качество (utility gap) | < 5% | < 3% | Сильно зависит от данных |
| Скорость обучения | 1-2 часа | 4-12 часов | 5-30 минут |
| Макс. признаков | 50 | 1000+ | 20 |
| Поддержка пропусков | Да | Да | Нет |
Что входит в работу
- Документация: описание архитектуры, метрики качества, инструкция по дообучению.
- Готовая модель в формате
.pkl/ ONNX / Hugging Face. - API для генерации (FastAPI) с эндпоинтами
/generateи/evaluate. - Обучение команды заказчика (2–3 часа воркшопа).
- Поддержка 1 месяц после внедрения.
Сроки и стоимость
Ориентировочные сроки — от 3 до 10 рабочих дней в зависимости от сложности данных и требований к качеству. Стоимость рассчитывается индивидуально. Инвестиции в качественные синтетические данные окупаются за счёт уменьшения затрат на разметку и сбор. Средняя экономия — до 40% бюджета на сбор и разметку.
Типичные ошибки при генерации
- Использование одной модели для всех типов данных: нужно учитывать долю категориальных признаков. Для датасетов с >50% категорий лучше подходит TabDDPM.
- Игнорирование пропусков — они сильно искажают распределение; используйте встроенную обработку CTGAN.
- Оценка только по визуальному сходству (TSTR обязателен).
- Слишком мало эпох — CTGAN требует минимум 300, TabDDPM — 500.
Свяжитесь с нами для оценки вашего датасета — мы подготовим прототип за 2 дня. Закажите пилотный проект: получите первые результаты (модель + отчёт по TSTR) уже через 5 рабочих дней.
Подробнее о моделях: CTGAN.







