Разработка функций - одна из самых важных и утомительных задач в науке о данных, особенно когда входные данные предоставляются в реляционном формате с несколькими таблицами. Для этого типа данных инженеры / ученые по данным тратят много времени на написание и отладку SQL-запросов для объединения и агрегирования данных. Обычно для выполнения этой задачи требуются недели или даже месяцы из-за множества вариантов объединения и агрегирования данных. В этой статье мы узнаем, как автоматически выполнять проектирование функций с помощью IBM AutoAI в Cloud Pak for Data. С помощью AutoAI эту задачу можно выполнить за считанные минуты, сэкономив вам недели и достигнув при этом высочайших результатов.

Вариант использования и набор данных

Наш пример использования касается прогнозирования продаж для каждого продукта в розничных магазинах компании Great Outdoors (GO). Данные GO включают пять таблиц с диаграммой отношений сущностей, показанной на следующем рисунке:

  • Перейти: основная таблица с целевым столбцом прогнозирования QUANTITY и столбцом DATE, который указывает время окончания, когда следует сделать прогноз.
  • Ежедневные продажи: у компании GO есть много розничных продавцов, продающих товары для активного отдыха, таблица ежедневных продаж представляет собой временной ряд записей о продажах, где в столбцах ДАТА и КОЛИЧЕСТВО указывается количество и дата продажи для каждого продукта в розничный магазин.
  • Товары: хранит информацию о товарах, например о типах и брендах товаров.
  • Розничные продавцы: хранит информацию о розничных продавцах, например названия и страны.
  • Методы: в этой таблице хранятся такие методы заказа, как по телефону или через Интернет.

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

Разработка функций для реляционных данных

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

  • Table join: объединение основной таблицы с контекстными таблицами
  • Агрегация данных: превратите объединенную таблицу в объекты.

Например, объединение таблицы Go с таблицей Products (через внешний ключ Product number) и таблицей Retailers (с помощью клавиши Код продавца) мы можем предоставить статическую информацию, такую ​​как Тип продукта (из таблицы продуктов) или Продавец страны (из таблицы розничных продавцов) в таблицу Go. Это дает полезную функцию для прогнозирования продаж: тип продукта, такой как сад или пеший туризм или географический такая информация, как страны, является полезным предсказателем продаж. В этом простом случае агрегирование не требуется, поскольку отношения между этими таблицами взаимно однозначны.

С другой стороны, более интересным источником информации является таблица Ежедневные продажи с динамической информацией, такой как ежедневные продажи и цена за единицу. Объединение таблицы Go с таблицей Daily sales table позволяет получить историю продаж и цен за единицу для каждого продукта и продавца. Нам нужно преобразовать исторические данные с помощью функций агрегирования, чтобы получить функции. Главный вопрос на этом этапе - какие агрегаты приведут к полезным функциям. Иногда ответ на этот вопрос основан на знании предметной области, но во многих случаях требуется исследование данных, чтобы понять закономерности, скрытые в данных.

Автоматическая разработка функций с помощью AutoAI

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

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

Еще одна важная функция AutoAI - объявление временных меток . Например, для каждого продукта в розничном магазине нам может потребоваться прогнозировать количество продаж на ежедневной или еженедельной основе. Для этого мы можем явно предоставить столбец под названием отметка времени отсечения в основной таблице, указывающий время прогнозирования. Предоставление этой информации не только помогает AutoAI извлекать календарные функции, но также предотвращает утечку данных, которая происходит, когда извлеченные функции включают информацию о цели. С другой стороны, если контекстные таблицы имеют отметки времени, такие как столбец DATE в таблице Ежедневные продажи, мы должны явно предоставить эту информацию AutoAI, потому что он будет использовать временной порядок данных для создания полезных функций. относительно регулярных / нерегулярных временных рядов или последовательностей событий.

Изучение функций и идеи

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

Мы можем выбрать любой конвейер и изучить график важности функции, чтобы получить некоторое представление об основных факторах, используемых моделью для прогнозирования. В приведенном ниже примере мы узнаем, что наиболее важной функцией для прогнозирования продаж является значение лага 1 (самое последнее значение) временного ряда Quantity в Daily таблица продаж. Это имеет смысл, потому что существует сильная автокорреляция в данных, когда объем продаж на следующий день сильно коррелирует с объемом продаж на предыдущую дату. AutoAI создает эту функцию автоматически путем объединения таблицы Go с таблицей Daily sales с помощью кода продавца и Ключи номера продукта и агрегирование объединенных данных с использованием преобразования с именем latest_0 для получения значения задержки 1, как показано на рисунке ниже.

Еще одна интересная функция создается путем объединения таблицы Go с Daily sales table с использованием кода продавца и Номер продукта и агрегирование объединенных данных с помощью преобразования среднее, которое передает информацию о скользящем среднем значении продаж в исторических данных.

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

Что дальше?

Предлагаем вам попробовать еще один интересный анализ клиентского опыта с данными колл-центра после того, как вы ознакомитесь с руководством на нашей странице документации и демонстрационным видео.

Дополнительные ресурсы

Технические подробности об алгоритмах и сравнительных исследованиях см. В следующих публикациях:

  1. Хоанг Тхань Лам, Иоганн Михаэль-Тибо, Матье Синн, Бей Чен, Тиеп Май и Ознур Алкан. Машина с одной кнопкой для автоматизации проектирования функций в реляционных базах данных. Arxiv 2017.
  2. Хоанг Тхань Лам, Бит Буссер, Хонг Мин, Тран Нгок Мин, Мартин Вистуба, Удаян Хурана, Грегори Брамбл, Теодорос Салонидис, Дакуо Ван и Хорст Самуловиц. Автоматизированная наука о данных для реляционных данных. Демонстрационная статья на IEEE ICDE 2021.
  3. Автоматизированная разработка функций для реляционных данных с помощью шпаргалок AutoAI https://developer.ibm.com.