15 Open Source библиотек для повышения качества данных

15 Open Source библиотек для повышения качества данных


Профилирование и оценка

Разведочный анализ данных

1. Pandas Profiling

Pandas Profiling генерирует отчёт о профилировании фреймов данных Pandas.

Основные функции:

  • Профилирование данных: недостающие и уникальные значения и т. д.
  • Распределения данных и гистограммы.
  • Квантильная и описательная статистика: среднее значение, стандартное отклонение, Q1 и т. д.
  • Выведение типа данных.
  • Взаимодействия и корреляции данных.
  • Создание отчёта в HTML.

2. Great Expectations

Great Exception основана на ассертах данных из библиотеки Expectation. Это общедоступный, открытый стандарт качества данных, помогающий командам Data Science устранять недоработки конвейера данных, выполняя их тестирование, документирование и профилирование.

Основные функции:

Декларативные тесты данных на: 

  • ожидаемое количество строк в таблице — от x до y;
  • ожидаемое число недостающих значений не превысит 20%;
  • ожидаемый формат даты в столбцах — MM-DD-YYYY;
  • дополнительные конструкции «из коробки»: уникальность, отклоняющиеся значения и другие характеристики данных;
  • пользовательские ожидания.

Другие функции:


  • Автоматическое профилирование данных.
  • Визуализация тестов в удобных для человека формах и документах.
  • Интеграция со многими инструментами и системами: Pandas, Jupyter Notebook, Spark, mysql, databricks и т. д.;

3. SodaSQL

SodaSQL — это инструмент командной строки, выполняющий SQL-запросы на основе входных данных. Вот что он делает:


  • Запускает тесты на разных наборах данных в разных источниках данных: Snowflake, PostgreSQL, Athena, и т. д., ищет недопустимые или недостающие данные.
  • Собирает метрики: минимальные, максимальные и средние значения, стандартное отклонение и многие другие метрики.

Основные функции:


  • Пользовательские тесты на SQL.
  • Определение тестов для каждой таблицы в формате yml.
  • Интеграция с инструментом оркестрации данных.
  • Подключение и сканирование наборов данных.
  • Определение формата столбцов: электронная почта, дата, номера телефонов и т. д.
  • Сохранение результатов сканирования в JSON.

Прогнозная аналитика

4. Ydata

Ydata оценивает качество данных конвейера данных на разных этапах его разработки. Она помогает составить целостное представление о данных, рассматривая их с разных точек зрения на предмет:


  • недостающих значений;
  • дублирования данных;
  • отклоняющихся значений и дрейфа данных;
  • отношений данных и корреляции данных.

Библиотека интегрируется с Great Expectations, в которой запускаются ассерты данных, позволяющие проверять, профилировать данные и автоматически генерировать отчёты:


5. DeepChecks

DeepChecks — это пакет Python, позволяющий легко проверять модели ML и связанные с различными задачами данные, например производительность модели; также DeepChecks обнаруживает:


  • значения null;
  • дублирование данных;
  • изменения частотности;
  • специальные символы и т. д.;

Библиотека сравнивает строки, обнаруживает их несоответствия. Она видит следующие характеристики данных:


  • смещения в распределении;
  • важность признаков.

Целостность данных и обнаружение смещения пригодятся при тестировании данных.


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

В DeepChecks можно писать свои тесты и их наборы, красиво отображая результаты в таблице или на графике Plotly:

6. Evidently AI

Evidently AI — это инструмент для анализа и наблюдения за моделями ML.

Библиотека видит:

  • Распределение данных.
  • Дрейф данных.
  • Производительность модели.
  • Работоспособность модели.

Evidently AI интегрируется с Grafana и Prometheus, можно создать пользовательский дашборд.


7. Alibi Detect

Alibi Detect — специализированная библиотека ML для обнаружения отклоняющихся значений (выбросов), состязательности и дрейфа данных.

Основные функции:

  • Обнаружение дрейфа и отклоняющихся значений в табличных данных, тексте, изображениях и временных рядах.
  • Обнаружение с предварительно тренированным и нетренированным детектором.
  • Поддержка бэкендов TensorFlow и PyTorch для обнаружения дрейфа.

Очистка и форматирование данных

1. Scrabadub

Scrabadub — это инструмент выявляет и удаляет из любого текста личную информацию: имена, номера телефонов, адреса, номера кредитных карт и т. д. Можно реализовать собственные средства обнаружения данных:


text = "My cat can be contacted on example@example.com, or 1800 555-5555" scrubadub.clean(text) 
>>'My cat can be contacted on {{EMAIL}}, or {{PHONE}}'

2. Arrow

В Arrow реализован разумный, удобный подход к созданию, обработке, форматированию и преобразованию дат, времени и временных меток:


utc = arrow.utcnow() 
time= utc.to('US/Pacific') 
past = time.dehumanize("2 days ago") 
print(past) 
>> 2022-01-09T10:11:11.939887+00:00
print(past.humanize(locale="ar"))  
>> 'منذ يومين'

3. Beautifier

Beautifier — библиотека для очистки шаблонов URL и адресов электронной почты. Она позволяет:


  • Проверить корректность электронного адреса.
  • Анализировать электронные письма по домену и имени пользователя.
  • Анализировать URL по доменам и параметрам.
  • Очистить URL от символов Unicode, специальных символов и ненужных шаблонов перенаправления.

4. Ftfy

Ftfy расшифровывается как Fixes text for you («Исправляет текст для вас»). Вот её функции:


  • Исправление текста с неподходящими для языков разметки символами Unicode.
  • Удаление разрывов строк.
  • Преобразование HTML-сущностей в обычный текст.
  • Выявление текста с вероятностью искажения из-за неверной кодировки.
  • Объяснения того, что произошло с текстом.
ftfy.fix_text('The Mona Lisa doesn’t have eyebrows.') 
>>"The Mona Lisa doesn't have eyebrows."

5. Dora

Dora — это инструментарий разведочного анализа данных для Python.

Основные функции:

  • Очистка данных от "null", преобразование из категориальных данных в порядковые данные, преобразование данных в столбцах и удаление столбцов.
  • Выделение и извлечение признаков.
  • Отображение признаков на графике.
  • Разделение данных для валидации модели.
  • Преобразования данных с их версионированием.

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


6. DataCleaner

Data Cleaner автоматически очищает наборы данных и подготавливает их к анализу.

Основные функции:

  • Удаление строк с пропущенными значениями.
  • Замена отсутствующих значений.
  • Кодирование нечисловых переменных.
  • Работа с фреймами данных Pandas.
  • Работа в скриптах и в командной строке.

Предварительный просмотр таблиц

1. Tabulate

Вызов одной функции Tabulate выводит небольшие, красивые таблицы.

Основные функции:

  • Удобные для восприятия таблицы.
  • Форматирование таблиц в HTML и других форматах.

2. PrettyPandas

PrettyPandas — инструмент с простым API, генерирующий достойные табличные отчёты. Они хорошо воспринимаются благодаря:


  • добавлению итоговых строк и столбцов;
  • форматированию чисел валют и процентов.



Report Page