Перейти к содержанию

Блок "Инженерия факторов"

Блок доступен начиная с версии 1.0

Назначение блока

Блок предназначен для расширения исходного набора данных новыми производными признаками. Это позволяет:

  • для числовых рядов – выделить динамику, тренды и изменения;

  • для категориальных рядов – сократить количество категорий и упростить анализ;

  • для дат – извлечь временные закономерности и сезонность.

Чтобы начать работать с блоком, необходимо его выбрать в библиотеке и переместить в область графа.

Настройки блока

Работа с настройками блока осуществляется через локальное меню (пункт Настройки):

Модальное окно выглядит следующим образом:

Общие настройки блоков описаны в отдельном разделе.

Раздел "Настройки преобразований"

Каждое преобразование необходимо добавить через '+'.

Общие настройки

Наименование id настройки Тип Обязательное Описание
Имя ряда column_name Строка Да Поле ввода текстового имени ряда из DataFrame
Тип преобразования transformation_type Выпадающий список Да По умолчанию "Абсолютный прирост". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Абсолютный прирост ("abs_diff");
- Темп роста ("growth");
- Темп прироста ("inc");
- Логарифмический прирост ("logdiff");
- Годовой темп прироста ("yoy");
- Нормализация ("norm");
- Стандартизация ("std");
- Логарифмирование ("log");
- Отставание (lag) ("lag_k");
- Опережение (lead ("lead_k"));
- Разности (diff) ("diff_k");
- Скользящие статистики ("roll");
- Категоризация по диапазонам ("categor");
- Уменьшение размерности ("low_dimension");
- Компоненты даты ("dt_part");
- Индикатор дат ("df_flag");
- Разность дат ("datediff")
Lag lag Целое число Нет Настройка доступна только для типа преобразования 'lag_k'. По умолчанию 1.
Lead lead Целое число Нет Настройка доступна только для типа преобразования 'lead_k'. По умолчанию 1.
Уровень разностей diff_lvl Целое число Нет Настройка доступна только для типа преобразования 'diff_k'. По умолчанию 1.
Окно скольжения roll_k Целое число Нет Настройка доступна только для типа преобразования 'roll'. По умолчанию 2.
Тип статистики type_stat Выпадающий список Нет Настройка доступна только для типа преобразования 'roll'. По умолчанию "Cреднее". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Cреднее ("mean");
- Медиана ("median");
- Минимум ("min");
- Максимум ("max");
- Стд. отклонение ("std")
Границы интервалов (bins) ranges Строка Нет Настройка доступна только для типа преобразования 'categor'. Необходимо ввести границы интервалов через запятую. Например 0, 5, 10
Метки интервалов ranges_labels Строка Нет Настройка доступна только для типа преобразования 'categor'. Необходимо ввести имена интервалов через запятую. Например Малый, Средний, Большой
Порог частоты threshold Вещественное число Нет Настройка доступна только для типа преобразования 'low_dimension'. Доля частоты класса, меньше которой классы объединяются в один с именем "Other"
Компоненты дат dt_comp Выпадающий список Нет Настройка доступна только для типа преобразования 'dt_part'. По умолчанию "День". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Год ("year");
- Квартал ("quart");
- Месяц ("month");
- День ("day");
- День недели ("day_of_week");
- День года ("day_of_year");
- Час ("hour");
- Минута ("minute");
- Секунда ("second")
Дата индикаторы dt_indic Выпадающий список Нет Настройка доступна только для типа преобразования 'df_flag'. По умолчанию "Выходной/будний день". Поле поддерживает единичную отметку. Содержит следующие элементы:
- Выходной/будний день ("weekend");
- Праздничный/обычный день ("holiday")
Единица измерения dt_diff_type Выпадающий список Нет Настройка доступна только для типа преобразования 'datediff'. По умолчанию "День". Поле поддерживает единичную отметку. Содержит следующие элементы:
- День ("day");
- Час ("hour");
- Минута ("minute")

Входы блока

Наименование выхода Тип Описание
Входной датасет DataFrame DataFrame с одним рядом
Настройки блока JSON См. описание ниже

Вход "Настройки блока"

Если настройки передаются на вход блока, его внутренние настройки игнорируются. Для корректной передачи настроек необходимо:

  1. Передать их в формате JSON.

  2. Каждое преобразование должно быть задано в формате dict.

  3. Каждое преобразование обязательно должно включать в себя задание имени ряда (column_name) и типа трансформации (transformation_type)

  4. Указать все необходимые параметры выбранного преобразования (если они есть) "id_настройки": значение. Идентификаторы настроек и перечислений приведены в таблицах выше. Если параметр указан неверно или отсутствует, будет использовано значение по умолчанию.

    Пример задания настроек

    [
        {'column_name': 'age',
         'transformation_type': 'std'},
        {'column_name': 'age',
         'transformation_type': 'log'},
        {'column_name': 'age',
         'transformation_type': 'lag_k',
         'lag': 3},
        {'column_name': 'age',
         'transformation_type': 'lead_k',
         'lead': 6},
        {'column_name': 'age',
         'transformation_type': 'diff_k',
         'diff_lvl': 2}
    ]
    

Выходы блока

Наименование выхода Тип Описание
Дополненный датасет DataFrame
Описательные статистики html Статистический отчет о работе метода

События блока

В блоке нет событий.

Описание работы блока

Назначение: автоматизированное преобразование временных и табличных рядов различных типов (числовых, категориальных, дат).

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

Способы задания настроек:

  • через внутренний интерфейс блока (визуально);
  • через JSON, переданный на вход блока.

Полное описание преобразований:

Числовые ряды:

  • Абсолютный прирост;
  • Темп роста;
  • Темп прироста;
  • Логарифмический прирост;
  • Годовой темп прироста;
  • Нормализация;
  • Стандартизация;
  • Логарифмирование;
  • Лаги/Лиды;
  • Разности;
  • Скользящие статистики;
  • Категоризация: разбиение на интервалы с присвоением категории.

Категориальные ряды:

  • Уменьшение размерности: все категории с частотой меньше threshold заменяются на "Other".

Ряды дат:

  • Компоненты даты;
  • Индикатор дат;
  • Разность дат.

Ограничения блока

  1. Метод работает только с объектами pandas.DataFrame
  2. Входной датасет не может быть пустым.