Сегодня мы рады представить новые функции для gretel-synthetics, которые упрощают работу с синтетическими данными. После начальных этапов тестирования и получения отзывов от клиентов мы представляем новый интерфейс, который работает напрямую с Pandas DataFrames и позволяет групповое обучение столбцов для обмена исходным DataFrame напрямую с синтетическим DataFrame той же формы.

Есть DataFrames? Хотите синтетические данные? Время пришло.

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

Мотивация, стоящая за интерфейсом Batch, заключается в поддержке наборов данных с высокой размерностью и количеством столбцов. Это достигается за счет кластеризации столбцов и обучающих моделей сразу на подмножествах всего набора данных. В то время как пакетная обработка обычно не требуется для создания синтетических наборов данных с менее чем 30–40 столбцами, масштабирование для поддержки наборов данных с сотнями или тысячами столбцов требует другого подхода.

Одним из самых больших преимуществ библиотеки синтетических данных Gretel является ее способность автоматически изучать и поддерживать корреляции и статистические отношения между столбцами как на уровне набора данных, так и на уровне записи. Например, рассмотрите рост и вес. Более высокие люди, как правило, тяжелее - это пример положительной корреляции, которую наша модель усвоила бы автоматически. Однако не все столбцы напрямую коррелированы, и, разделив входное обучение на пакеты или кластеры столбцов, становится возможным масштабировать синтетическую генерацию до высокомерных наборов данных с минимальной потерей точности.

Начиная

Давайте посмотрим, как мы создаем наш пакетный интерфейс. Щелкните ссылку ниже, чтобы создать синтетический набор данных в интерактивном режиме с помощью нашей записной книжки для пакетного обучения (включая бесплатный доступ к графическому процессору 🔥) в Google Colaboratory.



Сначала определите параметры для обучения синтетической модели данных Гретель:

Объект DataFrameBatch Gretel Synthetics принимает для работы только два аргумента ключевого слова.

Первый - это ваш исходный файл PandasDataFrame, а второй - шаблон конфигурации. Параметры для шаблона конфигурации точно такие же, как параметры конфигурации, которые вы использовали бы для синтетической конфигурации, вместо этого просто поместите их в словарь. Версия 0.10.0 также включает подробные строки документации для каждого из параметров конфигурации, так что вы можете изучить и настроить для более сложных вариантов использования.

По умолчанию мы разбиваем входной DataFrame на группы по 15 столбцов. Это можно изменить с помощью параметров инициализации, а также вы можете использовать параметр batch_headers для предоставления ваших собственных пакетов заголовков.

Есть пара заметных изменений / обновлений:

  • input_data_path не требуется (и будет проигнорирован, если предоставлен), поскольку этот модуль создаст для вас обучающие данные на основе входного DataFrame.
  • gen_lines является необязательным, и если он опущен, мы автоматически установим это значение как количество строк в качестве входного DataFrame. Это означает, что синтезированные данные должны иметь ту же форму, что и входной DataFrame!
  • checkpoint_dir автоматически создаст подкаталоги «batch_N». Каждый каталог будет содержать обучающие данные и модели, относящиеся к данным этого пакета.
  • field_delimiter требуется для пакетного режима. Если валидаторы не предусмотрены, как минимум, пакетный модуль автоматически гарантирует, что в сгенерированных строках будет столько же столбцов, сколько во входных обучающих данных. Этот параметр определяет, как сгенерированные строки разбиваются на столбцы.
  • Обратите внимание, что независимо от того, как заголовки разделяются и группируются, конечный синтетический DataFrame будет иметь заголовки в том же порядке, что и входной DataFrame.

Проверка данных

Важным шагом в синтезе данных является проверка того, что сгенерированные строки соответствуют определенным ограничениям. Gretel Synthetics позволяет использовать валидаторы для каждой строки, эта функциональность распространяется на модуль Batch, позволяя устанавливать валидаторы для каждой партии.

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

Если вы хотите настроить валидатор для определенной партии - например, чтобы сбалансировать набор данных о состоянии здоровья, генерируя только записи о женском полу - вы можете сделать это следующим образом:

Скоро будет…

Следите за обновлениями нашей общедоступной бета-версии, которая делает доступным еще несколько библиотек, включая наш собственный пакет валидатора.

Наш настраиваемый пакет проверки автоматически распознает ограничения в ваших данных и применяет их во время генерации. Сюда входят наборы символов, числовые границы, строковые шаблоны и многое другое! Как всегда, у нас будут простые интерфейсы API и примеры записных книжек, которые помогут вам начать работу.

Заключение

После того, как мы создали наш экземпляр DataFrameBatch , нам нужно пройти через процесс обучения и генерации. Эти функции объединены в три основных метода для: генерации обучающих данных, обучения моделей и генерации синтетических данных:

Теперь у вас есть синтетические данные!

Надеемся, этот обзор был вам полезен. Просмотрите наш образец записной книжки, который проведет через весь процесс с использованием общедоступного набора данных.

Не стесняйтесь отправлять нам отзывы на [email protected] или открывать вопрос на GitHub.