Валидация данных

Перейти к навигацииПерейти к поиску

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

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

Необходимость проведения валидации данных

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

Операции валидации данных

Методы валидации могут включать визуальную валидацию, в том числе с применение различных аналитических инструментов[2], профилирование и фильтрацию данных[3][4]. Для валидации данных с заданным или известным распределением и, в машинном обучении, для оценки дрейфа данных могут применяться статистические методы сравнения распределений, использующих Критерий согласия Колмогорова[5][6].

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

Проверки типа данных
подтверждают, что отдельные символы, вводимые пользователем, соответствуют символам одного или нескольких заранее определённых заданным типов данных. Например, целочисленное поле может требовать ввода только символов от 0 до 9.
Простая проверка диапазона и ограничений
выполняется проверка вводимых данных на соответствие заданному диапазону (минимальному/максимальному значению) или заданной последовательности символов. Например, можно потребовать, чтобы значение счетчика было неотрицательным целым числом, а пароль должен соответствовать минимальной длине и содержать символы обоих регистров и специальные символы.
Проверка кода и перекрестных ссылок
включает операции по проверке соответствия данных одному или нескольким правилам, требованиям или их наборами и могут включать перекрестные ссылки на предоставленные данные с известной таблицей поиска или информационной службой каталога, такой как LDAP. Например, для идентификации валюты используется код Общероссийского классификатора валют.
Структурированная проверка
позволяет сочетать другие виды проверки вместе с более сложной обработкой, и может включать проверку условных ограничений для всего набора данных или набора операций.
Проверка непротиворечивости
проверка непротиворечивости обеспечивает логичность данных. Например, дате доставки заказа должна предшествовать дата его отгрузки.
Проверка формата
например, географические координаты должны быть введены в формате градусы, минуты и секунды с десятичной дробью (исторически сложившаяся форма записи).
Проверка недостающих записей
позволяет выявить отсутствующие.
Проверка кардинальности
проверяет, что запись имеет допустимое количество связанных записей. Например, записи «Клиент» должен соответствовать не менее чем один «Заказ».
Контрольные цифры
используются для числовых данных. Для обнаружения ошибок к числу, которое вычисляется на основе других цифр, добавляется дополнительная цифра.
Межсистемные проверки согласованности
сравнивает данные в разных системах, чтобы убедиться в их соответствии. Системы могут представлять одни и те же данные по-разному, и в этом случае сравнение требует преобразования (например, одна система может хранить имя клиента в одном поле в формате «Фамилия, Имя, Отчество», а другая использует три поля «Фамилия», «Имя», «Отчество».
Проверка существования файла
проверяет, существует ли файл с указанным именем. Эта проверка необходима для программ, использующих работу с файлами.
Проверка присутствия
подтверждает наличие данных, например, клиенты должны иметь адрес электронной почты.
Проверка диапазона
подтверждает, что данные находятся в определённом диапазоне значений, например, вероятность должна быть между 0 и 1.
Ссылочная целостность
значения в двух таблицах реляционной базы данных могут быть связаны через внешний ключ и первичный ключ. Если значения в поле внешнего ключа не ограничены внутренними механизмами, то они должны быть проверены, чтобы убедиться, что ссылающаяся таблица всегда ссылается на строку в ссылающейся таблице.
Проверка орфографии и грамматики
ищет орфографические и грамматические ошибки.
Проверка уникальности
проверяет уникальность каждого значения. Такая проверка может быть применена сразу к нескольким полям (например, адрес, имя, фамилия).
Проверка поиска по таблице
сравнивает данные с набором допустимых значений.

Также могут применяться другие методы и их комбинации.

Риски использования данных без валидации

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

См. также

Примечания

  1. Архивированная копия. Дата обращения: 11 декабря 2021. Архивировано 1 декабря 2017 года.
  2. SAS Visual Statistics Features | SAS. Дата обращения: 11 декабря 2021. Архивировано 12 декабря 2021 года.
  3. Validate Data. Дата обращения: 11 декабря 2021. Архивировано 11 декабря 2021 года.
  4. Validating data quality in AWS Glue DataBrew - AWS Glue DataBrew. Дата обращения: 11 декабря 2021. Архивировано 11 декабря 2021 года.
  5. Data Drift Detection | Importance of Data Drift Detection. Дата обращения: 11 декабря 2021. Архивировано 2 ноября 2021 года.
  6. Detect data drift on datasets (preview) - Azure Machine Learning | Microsoft Docs. Дата обращения: 11 декабря 2021. Архивировано 8 марта 2022 года.