Работа с узлом Заполнения пропусков
Качество данных является важным фактором, влияющим на результаты аналитической обработки и машинного обучения. Одной из типичных проблем загрязнения данных является наличие пропущенных значений (missing values). Пропуски в данных могут возникать по различным причинам: ошибки при сборе данных, технические сбои, отсутствие информации или намеренные пропуски в данных.
Во многих аналитических и прогностических моделях (ARIMAX, линейная регрессия, логистическая регрессия и др.) пропущенные значения в обучающих данных недопустимы и приводят к ошибкам обработки. Поэтому разработка стратегии заполнения пропусков является важной частью подготовки данных к анализу.
В демопримере показаны различные методы заполнения пропусков на примере данных о температурных наблюдениях. Рассмотрены ситуации, когда данные упорядочены по времени и когда они этого не требуют, а также приводятся полезные техники обработки пропусков.
Описание алгоритма
1. Импорт данных
Таблица Сводка по температуре:
| Имя | Метка |
|---|---|
| Дата | |
| Температура | |
| Осадки | |
| Направление ветра | |
| Погодные условия | |
| Видимость |
2. Предобработка перед ML
В подмодели Поведение узлов машинного обучения при данных с пропусками и без пропусков показаны две альтернативные ветки работы с одним и тем же исходным набором данных:
В первой ветке исходные данные подаются на узел Заполнение пропусков, который автоматически находит Null значения и, согласно заданным настройкам, заменяет их (например, средним, медианой, нулем) или удаляет такие записи.
Далее заполненные данные поступают на вход узла Логистическая регрессия, где эти данные участвуют в обучении и дальнейшей обработке. Для узлов, требующих предварительного обучения (например, ARIMAX, линейная и логистическая регрессия и др.), не допускаются пропуски в данных, участвующих в обучении. Поэтому предварительная обработка пропусков обеспечивает корректную работу алгоритмов и отсутствие ошибок при обучении.
Во второй ветке те же исходные данные подаются на узел Логистическая регрессия без предварительной обработки пропусков. Поскольку входные данные не должны содержать пропусков, наличие хотя бы одного Null значения в используемом столбце (например, в колонке Осадки) приводит к остановке обучения и выводу сообщения об ошибке: «Логистическая регрессия: Пропущенные значения запрещены (пропущенное значение в колонке "Осадки")».
Эта ветка демонстрирует, что без предварительной обработки данных, содержащих NULL-значения, обучаемые узлы не могут быть успешно активированы и выдают ошибку.
3. Заполнение пропусков
В подмодели Заполнение пропусков в упорядоченном и неупорядоченном наборах данных демонстрируется работа узла Заполнение пропусков с одним и тем же набором данными в упорядоченном и неупорядоченном виде. Результаты обработки в обеих ветках выводятся в визуализатор Диаграмма, где их можно наглядно сравнить по отдельным сериям и показателям.
В подмодели Неупорядоченный набор демонстрируется заполнение пропусков в данных, для которых порядок строк не имеет значения. Один и тот же неупорядоченный набор последовательно обрабатывается несколькими узлами Заполнение пропусков разными настройками (замена случайными значениями, наиболее вероятным значением, медианой или средним). В узлах Отсечение лишних полей удалены столбцы, которые не нужны для сравнения результатов заполнения пропусков, а также переименованы поля Температура для более понятного распознавания.
В подмодели Упорядоченный набор показывается заполнение пропусков в данных, где важен порядок строк (например, временной ряд по дате). Перед заполнением данные сортируются по дате/времени, после чего подаются на узел Заполнение пропусков; в настройках узла включён флаг Исходные данные упорядочены. В узлах Отсечение лишних полей удалены столбцы, которые не нужны для сравнения результатов заполнения пропусков, а также переименованы поля Температура для более понятного распознавания.
Рекомендуется при работе с пропущенными данными использовать интерполяционные методы, поскольку они восстанавливают промежуточные значения по гладкой интерполирующей функции и, как следствие, дают на графике более плавную кривую.
Узел Итоговая таблица для сравнения собирает результаты всех веток с заполнением пропусков в единую таблицу, включая поле Температура с пропущенными значениями. На основе этой таблицы в визуализаторе Диаграмма можно одновременно сравнивать статистические и интерполяционные методы с исходным рядом, содержащим пропуски, поочерёдно включая и отключая соответствующие серии.
4. Другие примеры обработки пропусков
Помимо статистических методов и интерполяции у узла Заполнение пропусков есть ещё варианты обработки пропусков:
Данный метод обработки позволяет удалить из выходного набора все записи, в которых в выбранных полях есть пропуски (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).