Блок "Инженерия факторов"
Блок доступен начиная с версии 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 | См. описание ниже |
Вход "Настройки блока"
Если настройки передаются на вход блока, его внутренние настройки игнорируются. Для корректной передачи настроек необходимо:
-
Передать их в формате JSON.
-
Каждое преобразование должно быть задано в формате dict.
-
Каждое преобразование обязательно должно включать в себя задание имени ряда (column_name) и типа трансформации (transformation_type)
-
Указать все необходимые параметры выбранного преобразования (если они есть) "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".
Ряды дат:
- Компоненты даты;
- Индикатор дат;
- Разность дат.
Ограничения блока
- Метод работает только с объектами pandas.DataFrame
- Входной датасет не может быть пустым.


