Автоматизируем проверку качества данных
«Все хотят работать с моделью, а не с информацией» -Дик Вейсингер – Президент фирмы по разработке ПО Formtek Пенсильвания
По статистике Alation SDCA 87% организаций не применяют AI из-за низкого качества данных, а исследование McKinsey показывают, что повышение качества данных помогут организациям, занимающимся BigData, достичь конкурентного преимущества.
Специалисты по обработке данных нередко оценивают моделирование как интересную работу, а чистку данных, как мучительную задачу. Трудности с данными, на решение которых не уделяется достаточно времени, приводят к негативным результатам при разработке AI. На сегодняшний день, все еще не хватает готовых инструментов, позволяющих проанализировать главные недостатки свойств данных и сделать их лучше. YData Quality, библиотека Python с открытым кодом для оценки свойств данных. Основные характеристики библиотеки:
- Данные рассматриваются в разрезе нескольких параметров.
- Библиотека, в зависимости от полученных результатов, отображает различные предупреждения об ошибках в данных.
- Предупреждения показывают не только сведения о выявленной ошибке, но и степень ее приоритета.
Основные свойства модулей в YData Quality:
- Данные анализируются на юридические и этические нормы (например, наличие судимости, пол, раса).
- Анализ на отношения между данными: оценивает корелляцию между признаками в массиве данных.
- Анализ закономерностей при просмотре всевозможных фрагментов данных.
- Анализ данных на дубликаты: данные могут быть из различных источников и не всегда уникальны. Данный модуль анализирует повторяющиеся записи в данных, которые считаются сверхизбыточными и должны быть удалены.
- Анализ маркировки данных: в библиотеке YData установлен модуль для предобработки категориальных и числовых признаков, который анализирует дисбаланс в классах данных.
- Анализ данных на отсутствующие сведения: отсутствие смысла в данных.
- Анализ на ошибочные данные: комплекс объектов проанализирует данные (табличные и кратковременные ряды) на предмет неверных значений.
Практика по использованию библиотеки. Для установки YData Quality в командной строке вводим:
Библиотека установлена. Код для применения библиотеки будет таким:
Скорость выполнения кода по таблице 8 строк на 9 столбцов составила 3 секунды. Отчет будет выглядеть следующим образом:
В итоге отображаются два предупреждения со вторым приоритетом.
Первое предупреждение: найдено 5 независимо коррелированных пар переменных. Вероятный признак некорректных данных.
Вторая проблема: найдено 6 высококорелированных переменных с высоким коэффициентом дисперсии (>5), что может потенциально привести к переобучению модели. В зависимости от цели, возможно удаление данных с высоким коэффициентом дисперсии.
Для получения отчета в разрезе колонок по найденным проблемам воспользуемся методом get_warnings(). Этот метод поможет определить столбцы с отклонениями.
Отчет демонстрирует, что в датасете столбцы column_1 и column_4 имеют независимо коррелированные пары, столбцы column_2 и column_5 содержат высококореллированные переменный с высокой дисперсией.
Пример 2. Используем датасет guerry_histdata.csv находящийся в открытом доступе и содержащий социальные данные, как город, регион, количество совершенных преступлений, количество людей с образованием, число убийств и т.д.
Скорость выполнения кода по таблице 87 строк на 26 столбцов составила 1 минуту 45 секунд. Получаем ответ:
Наблюдаем три предупреждения:
- первого приоритета: в выборке содержатся колонки с одинаковыми значениями;
- второго приоритета: найдено 20 дубликатов после группировки по сущностям;
- Без приоритета: найдено 20 значений с повторяющимися функциями.
Пример 3. Рассмотрение выборки всеми модулями библиотеки:
Скорость выполнения кода по таблице 90 строк на 15 столбцов составила 2 минуту 30 секунд. Результат выполнения кода:
Наблюдаем пять предупреждений:
- первого приоритета: наличие дублей данных.
- второго приоритета: высокая коллинеарность по соотношению данных, которая может привести к переобучению модели.
- второго приоритета: найдено 20 значений с повторяющимися функциями.
- второго приоритета: найдено 60 ошибочных данных.
Вывод: Использование библиотеки YData Quality позволяет повысить качество данных при решении AI задач.