Skip to content

Подготовка данных

Для работы с Morphism и создания датасетов требуется наполнить его данными. Ниже описан подход к проектированию архитектуры загружаемых объектов.

Pipeline подготовки данных для формирования датасета

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

Data Pipeline

Схема описывает процесс для ситуации, когда в приложении отсутствуют не только необходимые данные, но и структуры (сущности, фичи).

Уже созданные сущности и фичи можно переиспользовать при загрузке новых данных. Если в приложении уже настроена загрузка всех нужных данных и они покрывают все требования к новому датасету, процесс можно свести к выполнению только 1, 6, 7 шага.

Что можно грузить в Axiom

По "форме"

Доступна настройка следующих источников:

  • Таблица в БД
  • Ссылка на таблицу в БД
  • CSV / XLSX файл
  • SQL-скрипт

Подробнее см. в разделе "Загрузчики"

По "содержанию"

Наполнение таблиц можно разделить на 3 типа. У всех типов различные возможности по использованию при генерации датасетов.

Тип входных данных Описание Агрегация Работа с историей Пример
Готовые переменные Данные, рассчитанные в целевом виде, используются в датасетах "как есть". Одно значение сущности - одна запись на дату. Нет, используются данные только на дату построения датасета Пол, дата рождения, место работы
Предагрегат - транзакционный Транзакционные данные, предварительно агрегированные (если применимо) за определенный фиксированный период - гранулярность. Возможно несколько записей на дату для одного значения сущности. Да, возможно использование данных за разные периоды и агрегирование нужного количества срезов. Количество транзакций за неделю; Сумма ЗП-начислений за месяц
Предагрегат - общего назначения Детализированная информация по сущности под расширенным ключом. Возможно несколько записей на дату для одного значения сущности. Да, данные агрегируются только на дату, не за период. Можно выбрать дату из истории в формате "N периодов от даты построения датасета". Договоры клиента; Ответы БКИ по клиенту (сущность - Клиент)

Обязательные атрибуты

Сущность - один или несколько атрибутов, являющихся PRIMARY KEY таблицы источника, в разрезе которых будет рассчитываться будущая модель. (см. подробнее)

Дата актуальности (опционально) - дата, на которую актуальны данные.

Дата окончания актуальности (опционально) - дата, до которой актуальны данные. Может быть указана только при наличии даты актуальности.

При загрузке данных в Axiom можно указать в качестве источника дат периода актуальности:

  • Атрибут из загружаемой таблицы/файла;
  • Фиксированную дату;
  • Текущую дату загрузки (используется по умолчанию, если пользователь ничего не указал).

Для двух последних пунктов в источнике не требуется наличие атрибута с датой актуальности.

Проектирование объектов с исходными данными

Исходные требования к датасету

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

Этот пример охватывает разные виды данных, при необходимости его можно экстраполировать на другие предметные области.

Клиентская информация

Название Описание Период расчета
Клиентская информация -
GENDER Пол -
AGE Возраст -
PROPERTY_CNT Количество видов собственности -
Договоры -
FIRST_OPEN_DT_MONTHS_CNT Количество месяцев с даты открытия первого кредита -
LOAN_CNT_PERIOD Общее количество кредитных договоров за период 6M, 12M
LOAN_CNT_RATIO Отношение количества кредитных договоров на отчетную дату к количеству за период 6M, 12M, 24M
Транзакции -
TRN_INPUT_CASH_AMT Сумма транзакций внесения наличных по карте за период 6M, 12M, 24M
TRN_INPUT_NONCASH_AMT Сумма транзакций внесения безнал по карте за период 6M, 12M, 24M
TRN_ABROAD_AMT Сумма расходных транзакций за границей за период 3M, 6M, 12M
TRN_VARIANCE Дисперсия расходных транзакций за период 3M, 6M, 12M

Рекомендуется "схлопывать" требования до основных сущностей, например "сумма транзакции", "количество договоров" и т.д. Необходимые фильтры перечислять в соседних столбцах. Так будет удобнее формировать датасеты и проектировать источники переменных для Axiom.

Определение сущности

Сущность - один или несколько атрибутов по которым необходимо рассчитывать модель.

Примеры сущностей:

  • ID клиента - если интересен скор по каждому клиенту в общем;
  • ID клиента +ID точки продаж - если рассчитываем модели для каждой точки продаж отдельно.
  • ID точки продаж - если интересны показатели точек, без детализации по клиентам.

Определение набора базовых фичей

Имея требования к датасету, нужно определить набор фичей.

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

Требование Фича Тип данных Комментарий
Пол Пол Готовая переменная Не требует преобразований
Возраст Дата рождения Готовая переменная Периоды (возраст, срок, стаж и т.п.) рекомендуется хранить в Axiom в виде даты начала действия периода и рассчитывать при формировании датасета
Количество видов собственности Вид собственности Предагрегат общего назначения Расчет количества настраивается агрегирующей функцией в разрезе зерна
Количество месяцев с даты открытия первого кредита Дата открытия первого кредитного договора Готовая переменная Вариант 1
Количество месяцев с даты открытия первого кредита Дата открытия первого договора Предагрегат общего назначения Вариант 2, если потенциально могут быть полезны не только кредитные договора
Общее количество кредитных договоров за период Номер договора Предагрегат общего назначения -
Отношение количества кредитных договоров на отчетную дату к количеству за период Номер договора Предагрегат общего назначения -
Сумма транзакций внесения наличных по карте за перио Сумма транзакции Транзакционный предагрегат Итоговые переменные для датасета рассчитываются при создании датасета. Пользователь указывает: агрегирующую функцию (обязательно), условия фильтрации по доменам,периоды расчета
Сумма транзакций внесения безнал по карте за период Сумма транзакции Транзакционный предагрегат Итоговые переменные для датасета рассчитываются при создании датасета. Пользователь указывает: агрегирующую функцию (обязательно), условия фильтрации по доменам,периоды расчета
Сумма расходных транзакций за границей за период Сумма транзакции Транзакционный предагрегат Итоговые переменные для датасета рассчитываются при создании датасета. Пользователь указывает: агрегирующую функцию (обязательно), условия фильтрации по доменам,периоды расчета
Дисперсия расходных транзакций за период Дисперсия расходных транзакций за период 1, ..., Дисперсия расходных транзакций за период N Готовая переменная Переменные, для расчета которых требуются детальные данные, рекомендуется рассчитывать перед зарузкой в Axiom и хранить в качестве готовой переменной

Гранулярность в транзакционных предагрегатах

Гранулярность - глубина, за которую агрегируются данные в предагрегате перед загрузкой в Axiom. Гранулярность указывается целым числом периодов; доступные периоды: час, день неделя, месяц, год.

Выбор гранулярности остается за пользователем, проектирующим входящие объекты для Axiom. Руководствоваться стоит минимально необходимым периодом, за который будут формироваться переменные для датасетов. Если модели обычно используют транзакционные фичи за периоды в 1, 3, 6 и 12 месяцев, рекомендуется рассчитывать данные в предагрегате с гранулярностью 1 месяц.

Избыточно мелкая гранулярность увеличивает объем хранимых данных, но дает больше вариативности для агрегирования при создании итоговых фичей в датасет.

Результирующие объекты

Перед загрузкой данных в Axiom необходимо продумать разделение по таблицам.

Для примера датасета выше рекомендуемый набор входных витрин для Axiom приведен в таблице ниже. В каждой витрине должны присутствовать обязательные поля: ключ(-и) сущности и (опционально) даты актуальности.

Таблица Тип таблицы Сущность Переменная Описание переменной
CUSTOMER_INFO Готовые переменные Клиент SEX Пол
CUSTOMER_INFO Готовые переменные Клиент BIRTH_DT Дата рождения
POPERTY Предагрегат общего назначения Клиент PROPERTY_NM Вид собственности
LOAN Готовые переменные Клиент FIRST_OPEN_DT Дата открытия первого кредитного договора
AGREEMENT Предагрегат общего назначения Клиент AGREEMENT_NUM Номер договора
AGREEMENT Предагрегат общего назначения Клиент AGREEMENT_TYPE Тип договора
TRANSACTION Транзакционный предагрегат Клиент TRN_AMT Сумма транзакции
TRANSACTION Транзакционный предагрегат Клиент TRN_DIRECTION Направление транзакции (in/out)
TRANSACTION Транзакционный предагрегат Клиент TRN_COUNTRY Страна проведения транзакции
TRANSACTION_CALC Готовые переменные Клиент VARIANCE_1 Дисперсия расходных транзакций за период 1
TRANSACTION_CALC Готовые переменные Клиент ... ...
TRANSACTION_CALC Готовые переменные Клиент VARIANCE_N Дисперсия расходных транзакций за период N