Работа с узлом Заполнения пропусков

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

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

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

Запустить демо

Установить локально

Описание алгоритма

1. Импорт данных

Таблица Сводка по температуре:

Имя Метка
 date Дата
Целый тип temperature Температура
Целый тип precipitation Осадки
 wind_direction Направление ветра
 weather_condition Погодные условия
 visibility Видимость

2. Предобработка перед ML

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

а) С заполнением пропусков

В первой ветке исходные данные подаются на узел Заполнение пропусков, который автоматически находит Null значения и, согласно заданным настройкам, заменяет их (например, средним, медианой, нулем) или удаляет такие записи.

Далее заполненные данные поступают на вход узла Логистическая регрессия, где эти данные участвуют в обучении и дальнейшей обработке. Для узлов, требующих предварительного обучения (например, ARIMAX, линейная и логистическая регрессия и др.), не допускаются пропуски в данных, участвующих в обучении. Поэтому предварительная обработка пропусков обеспечивает корректную работу алгоритмов и отсутствие ошибок при обучении.

б) Без заполнения пропусков

Во второй ветке те же исходные данные подаются на узел Логистическая регрессия без предварительной обработки пропусков. Поскольку входные данные не должны содержать пропусков, наличие хотя бы одного Null значения в используемом столбце (например, в колонке Осадки) приводит к остановке обучения и выводу сообщения об ошибке: «Логистическая регрессия: Пропущенные значения запрещены (пропущенное значение в колонке "Осадки")».

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

3. Заполнение пропусков

В подмодели Заполнение пропусков в упорядоченном и неупорядоченном наборах данных демонстрируется работа узла Заполнение пропусков с одним и тем же набором данными в упорядоченном и неупорядоченном виде. Результаты обработки в обеих ветках выводятся в визуализатор Диаграмма, где их можно наглядно сравнить по отдельным сериям и показателям.

а) Неупорядоченный набор

В подмодели Неупорядоченный набор демонстрируется заполнение пропусков в данных, для которых порядок строк не имеет значения. Один и тот же неупорядоченный набор последовательно обрабатывается несколькими узлами Заполнение пропусков разными настройками (замена случайными значениями, наиболее вероятным значением, медианой или средним). В узлах Отсечение лишних полей удалены столбцы, которые не нужны для сравнения результатов заполнения пропусков, а также переименованы поля Температура для более понятного распознавания.

б) Упорядоченный набор

В подмодели Упорядоченный набор показывается заполнение пропусков в данных, где важен порядок строк (например, временной ряд по дате). Перед заполнением данные сортируются по дате/времени, после чего подаются на узел Заполнение пропусков; в настройках узла включён флаг Исходные данные упорядочены. В узлах Отсечение лишних полей удалены столбцы, которые не нужны для сравнения результатов заполнения пропусков, а также переименованы поля Температура для более понятного распознавания.

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

в) Итоговая таблица для сравнения

Узел Итоговая таблица для сравнения собирает результаты всех веток с заполнением пропусков в единую таблицу, включая поле Температура с пропущенными значениями. На основе этой таблицы в визуализаторе Диаграмма можно одновременно сравнивать статистические и интерполяционные методы с исходным рядом, содержащим пропуски, поочерёдно включая и отключая соответствующие серии.

4. Другие примеры обработки пропусков

Помимо статистических методов и интерполяции у узла Заполнение пропусков есть ещё варианты обработки пропусков:

а) Метод обработки Удалять записи

Данный метод обработки позволяет удалить из выходного набора все записи, в которых в выбранных полях есть пропуски (Null), чтобы дальше работать только с полностью заполненными строками.

б) Альтернатива узлу Замена

Настройка заменяет пропуски текстовым значением «Не задано» или указанной пользователем строкой; применяется только к полям строкового типа и служит альтернативой узлу Замена.

в) Заполнение Null нулем

Для числовых полей значение Null можно заменять на ноль для нормализации данных и предотвращения ошибок вычисления.

г) Среднее по группе

С помощью узла Фильтр строк отбираются записи одной области. Затем в узле Заполнение пропусков по отфильтрованному набору вычисляется среднее значение температуры и подставляется вместо пропусков. Узел Цикл повторяет эти операции для каждой области отдельно, поэтому в каждой группе пропуски заполняются средним значением, рассчитанным именно по данным своей области.


Обработка пропусков в данных

Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно

Скачать демопример

Минимальные требования к системе:

  • Операционная система: Windows 10 и выше
  • CPU x64: 2 core 1
  • Оперативная память: 4 GB
  • Жесткий диск: 10 GB

1 Поддерживается работа на x64 процессорах Intel Core, AMD FX и более новых, содержащих инструкции SSE4.2 (POPCNT, LZCNT).