Копание за пределами стандартного профилирования данных

Pandas Profiling всегда был моим инструментом goto-secret для анализа данных и извлечения важной информации за несколько минут с помощью нескольких строк кода.

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

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

Стандартное использование на простом примере

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

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

Давайте запустим среду conda под названием report-env и установим библиотеку. Указание версии является хорошей практикой, так как это гарантирует воспроизводимость результатов.

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

Коды выглядят примерно так:

Вы увидите отчет, подобный этому:

Вот краткое изложение основных моментов, затронутых в отчете:

  1. Обзор набора данных. Это наиболее полезный раздел для быстрого понимания данных. Нам нужно следить за разделом предупреждений, поскольку мы углубляемся в каждое предупреждение, когда начинаем очищать данные.
  2. Переменные или столбцы: обзор статистики для каждого столбца в данных, например, среднее, максимальное, минимальное, отдельные, квантили и график гистограммы.
  3. Взаимодействия и корреляции между переменными. Хотя важно понимать каждый столбец отдельно, машинное обучение — это все о корреляциях и взаимодействиях между переменными. Эти два интерактивных графика дают нам представление о закономерностях взаимодействия между переменными и несколькими показателями корреляции, такими как показатели корреляции Пирсона, Крамера и Кендалла.
  4. Отсутствующие значения. Этот раздел поможет большинству специалистов по данным, которые считают низкое качество данных самой большой проблемой в жизненном цикле разработки данных. В дополнение к предупреждениям, которые мы видели в разделе обзора, в этой части показано количество пропущенных значений в каждом столбце. Как правило, я обращаюсь к этим столбцам, чтобы либо заменить, либо удалить столбцы во время очистки данных.
  5. Образец: ничего особенного, только первые и последние десять строк данных, на случай, если вы захотите взглянуть.
  6. Повторяющиеся строки. При наличии повторяющихся строк в отчетах перечисляются все повторяющиеся строки в таблице. Критически важно с точки зрения качества данных.

Как обычный пользователь, вам было бы неплохо использовать вышеперечисленное. Помните, что профилирование данных — это не последний шаг, а предварительный шаг к более глубокому пониманию данных.

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

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

Расширенное использование профилирования Pandas

Когда вы начинаете использовать библиотеку для каждого проекта, над которым работаете, вы хотите использовать расширенные функции, доступные в библиотеке. Те, которые я использовал и нашел полезными:

1. Минимальный режим для профилирования данных

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

Во-первых, давайте посмотрим, как мы можем использовать эту функцию.

Вам может быть интересно, почему мы вообще использовали минимальный режим. Вот почему я должен был и почему вы можете захотеть.

  • Большие наборы данных. Так я обнаружил эту функцию, так как это рекомендуемый шаг из пакета, когда большие наборы данных занимают слишком много времени для создания выходных данных. Эта функция будет полезна, если вы работаете на обычном ноутбуке или не можете масштабировать вычислительные ресурсы. Он сокращает все операции, требующие больших вычислительных ресурсов, и предоставляет более простую версию отчета, чтобы мы могли начать работу.
  • Когда нас интересуют только функции, связанные с переменными:данные не всегда используются для целей моделирования машинного обучения, но также для анализа данных, конвейеров данных, бизнес-отчетов и т. д. Если корреляции и взаимодействия между переменными (обычно интенсивные вычисления) не требуются, почему бы не придерживаться минимального режима?
  • Создание бизнес-правил и ожиданий на основе одномерного анализа данных.Компании часто должны устанавливать правила и ожидания для лучшего управления качеством данных. В таких случаях проще использовать версию с минимальным профилированием. Вычисления значительно увеличиваются, если несколько отделов требуют выполнить это упражнение.

2. Обработка конфиденциальных данных

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

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

Вот как вы можете включить конфиденциальный режим при создании отчета:

Конечно, это не гарантирует конфиденциальности, поэтому нам все равно нужно проверить отчет, если мы хотим поделиться им с внешним миром.

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

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

3. Использование функций метаданных набора данных

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

Помимо ссылок на набор данных и ссылок на него, мы также можем перенести описания переменных из словаря данных на отдельную вкладку в разделе обзора.

Вот как вы можете сделать это для набора данных Marketing, который мы выбрали ранее:

Посмотрите, как описания данных были скопированы и размещены в отчете, что упрощает просмотр для всех.

Вот как выглядела вкладка переменных отчета:

Этот шаг не помог, когда я проводил анализ, но определенно помог, когда мне пришлось вернуться к проекту для переобучения модели примерно через шесть месяцев.

4. Настройка показателей и внешнего вида отчета

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

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

Последние мысли

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

Если есть что-то, что я хотел бы, чтобы вы убрали, так это изучить больше библиотек с открытым исходным кодом: они созданы такими людьми, как вы и я, которые знают болевые точки специалистов по данным и работают над тем, чтобы сделать их жизнь проще.

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

Я знаю, что в Pandas Profiling могут быть дополнительные функции, которые мне еще предстоит изучить. Какие менее известные расширенные функции вы хотели бы добавить? Делимся знаниями в комментариях.

Присоединяйтесь к сообществу Data-Centric AI сейчас бесплатно, и вы сможете запрашивать функции и задавать вопросы непосредственно разработчикам библиотеки Pandas-Profiling.