Тратите часы на ручную очистку, обобщение и визуализацию данных? Автоматизируйте процесс разведочного анализа данных с помощью этих 5 готовых к использованию скриптов на Python.

Изображение предоставлено автором.
# Введение
Как специалист по анализу данных, вы знаете, что понимание данных — это основа любого успешного проекта. Прежде чем строить модели, создавать панели мониторинга или получать ценные выводы, вам нужно знать, с чем вы работаете. Но разведочный анализ данных (EDA) — это утомительно монотонный и трудоемкий процесс.
Для каждого нового набора данных вы, вероятно, пишете практически один и тот же код для проверки типов данных, вычисления статистики, построения графиков распределения и многого другого. Вам необходимы систематические, автоматизированные подходы для быстрого и тщательного анализа данных. В этой статье рассматриваются пять скриптов на Python, предназначенных для автоматизации наиболее важных и трудоемких аспектов исследования данных.
📜 Скрипты можно найти на GitHub .
# 1. Профилирование данных
// Выявление болевой точки
При первом открытии набора данных необходимо понимать его основные характеристики. Вы пишете код для проверки типов данных, подсчета уникальных значений, выявления пропущенных данных, расчета использования памяти и получения сводной статистики. Вы делаете это для каждого столбца, генерируя один и тот же повторяющийся код для каждого нового набора данных. Только это первоначальное профилирование может занять час или больше для сложных наборов данных.
// Обзор того, что делает скрипт
Автоматически генерирует полный профиль вашего набора данных, включая типы данных, закономерности пропущенных значений, анализ кардинальности, использование памяти и статистические сводки для всех столбцов. Выявляет потенциальные проблемы, такие как категориальные переменные с высокой кардинальностью, постоянные столбцы и несоответствия типов данных. Создает структурированный отчет, который за считанные секунды дает вам полную картину ваших данных.
// Объяснение принципа работы
Скрипт перебирает каждый столбец, определяет его тип и вычисляет соответствующие статистические данные:
- Для числовых столбцов программа вычисляет среднее арифметическое, медиану, стандартное отклонение, квартили, асимметрию и эксцесс.
- Для категориальных столбцов он определяет уникальные значения, моду и частотные распределения.
Он выявляет потенциальные проблемы с качеством данных, такие как столбцы с более чем 50% пропущенных значений, категориальные столбцы со слишком большим количеством уникальных значений и столбцы с нулевой дисперсией. Все результаты объединяются в легко читаемый датафрейм.
⏩ Получите скрипт профилировщика данных
# 2. Анализ и визуализация распределений
// Выявление болевой точки
Понимание распределения данных необходимо для выбора правильных преобразований и моделей. Вам нужно построить гистограммы, диаграммы размаха и кривые плотности для числовых признаков, а также столбчатые диаграммы для категориальных признаков. Создание этих визуализаций вручную означает написание кода для построения графиков для каждой переменной, настройку макетов и управление несколькими окнами графиков. Для наборов данных с десятками признаков это становится громоздким.
// Обзор того, что делает скрипт
Создает комплексные визуализации распределения для всех признаков в вашем наборе данных. Создает гистограммы с оценками плотности ядра для числовых признаков, диаграммы размаха для отображения выбросов, столбчатые диаграммы для категориальных признаков и QQ-графики для оценки нормальности распределения. Обнаруживает и выделяет асимметричные распределения, мультимодальные паттерны и потенциальные выбросы. Организует все графики в виде аккуратной сетки с автоматическим масштабированием.
// Объяснение принципа работы
Скрипт разделяет числовые и категориальные столбцы, а затем генерирует соответствующие визуализации для каждого типа:
- Для числовых характеристик создаются подграфики, отображающие гистограммы с наложенными кривыми оценки плотности ядра (KDE), аннотированные значениями асимметрии и эксцесса.
- Для категориальных признаков генерируются отсортированные столбчатые диаграммы, отображающие частоту значений.
Скрипт автоматически определяет оптимальные размеры интервалов, обрабатывает выбросы и использует статистические тесты для выявления распределений, значительно отклоняющихся от нормального распределения. Все визуализации создаются с использованием единого стиля и могут быть экспортированы по мере необходимости.
⏩ Получите скрипт анализатора распределения
#3. Изучение корреляций и взаимосвязей
// Выявление болевой точки
Понимание взаимосвязей между переменными имеет важное, но трудоемкое значение. Необходимо рассчитать корреляционные матрицы, построить диаграммы рассеяния для перспективных пар, выявить проблемы мультиколлинеарности и обнаружить нелинейные зависимости. Выполнение этих задач вручную требует создания десятков графиков, расчета различных коэффициентов корреляции, таких как коэффициенты Пирсона , Спирмена и Кендалла , и попыток выявить закономерности на тепловых картах корреляций. Этот процесс медленный, и часто упускаются важные взаимосвязи.
// Обзор того, что делает скрипт
Анализирует взаимосвязи между всеми переменными в вашем наборе данных. Генерирует корреляционные матрицы с использованием нескольких методов, создает диаграммы рассеяния для сильно коррелированных пар, выявляет проблемы мультиколлинеарности для регрессионного моделирования и определяет нелинейные взаимосвязи, которые может пропустить линейная корреляция. Создает визуализации, позволяющие детально изучить конкретные взаимосвязи, и отмечает потенциальные проблемы, такие как идеальные корреляции или избыточные признаки.
// Объяснение принципа работы
Скрипт вычисляет корреляционные матрицы, используя коэффициенты корреляции Пирсона, Спирмена и Кендалла, для выявления различных типов взаимосвязей. Он генерирует аннотированную тепловую карту, выделяющую сильные корреляции, а затем создает подробные диаграммы рассеяния для пар признаков, превышающих пороговые значения корреляции.
Для обнаружения мультиколлинеарности скрипт вычисляет коэффициенты инфляции дисперсии (VIF) и идентифицирует группы признаков с высокой взаимной корреляцией. Также скрипт вычисляет показатели взаимной информации, чтобы выявить нелинейные зависимости, которые не обнаруживаются коэффициентами корреляции.
⏩ Получите скрипт для анализа корреляций
# 4. Выявление и анализ выбросов
// Выявление болевой точки
Выбросы могут повлиять на ваш анализ и модели, но для их выявления требуется несколько подходов. Вам необходимо проверить наличие выбросов, используя различные статистические методы, такие как межквартильный размах (IQR), Z-оценка и изолированные леса, и визуализировать их с помощью диаграмм разброса и ящичных диаграмм. Затем вам нужно понять их влияние на ваши данные и решить, являются ли они подлинными аномалиями или ошибками данных. Ручное внедрение и сравнение нескольких методов обнаружения выбросов — трудоемкий и подверженный ошибкам процесс.
// Обзор того, что делает скрипт
Программа выявляет выбросы с помощью множества статистических методов и методов машинного обучения, сравнивает результаты разных методов для определения наиболее значимых выбросов, генерирует визуализации, показывающие местоположение и закономерности выбросов, и предоставляет подробные отчеты о характеристиках выбросов. Помогает понять, являются ли выбросы изолированными точками данных или частью значимых кластеров, и оценивает их потенциальное влияние на последующий анализ.
// Объяснение принципа работы
В скрипте используются несколько алгоритмов обнаружения выбросов:
- Метод межквартильного размаха для одномерных выбросов
- Расстояние Махаланобиса для многомерных выбросов
- Z-балл и модифицированный Z-балл для статистических выбросов
- Изолированный лес для сложных аномальных паттернов
Каждый метод генерирует набор отмеченных точек, а скрипт вычисляет консенсусную оценку, показывающую, сколько методов отметили каждое наблюдение. Он создает визуализации, сравнивающие методы обнаружения, выделяет наблюдения, отмеченные несколькими методами, и предоставляет подробную статистику по выбросам. Скрипт также выполняет анализ чувствительности, показывая, как выбросы влияют на ключевые статистические показатели, такие как средние значения и корреляции.
⏩ Получите скрипт для обнаружения выбросов
# 5. Анализ закономерностей отсутствия данных
// Выявление болевой точки
Пропущенные данные редко бывают случайными, и понимание закономерностей пропущенных данных необходимо для выбора правильной стратегии обработки. Вам нужно определить, в каких столбцах есть пропущенные данные, выявить закономерности в пропущенных данных, визуализировать эти закономерности и понять взаимосвязь между пропущенными значениями и другими переменными. Выполнение этого анализа вручную требует написания пользовательского кода для каждого набора данных и сложных методов визуализации.
// Обзор того, что делает скрипт
Анализирует закономерности пропущенных данных по всему набору данных. Выявляет столбцы с пропущенными значениями, вычисляет показатели пропущенных данных и обнаруживает корреляции в закономерностях пропущенных данных. Затем оценивает типы пропущенных данных — полностью случайные пропущенные данные (MCAR), случайные пропущенные данные (MAR) или неслучайные пропущенные данные (MNAR) — и генерирует визуализации, показывающие закономерности пропущенных данных. Предоставляет рекомендации по стратегиям обработки данных на основе обнаруженных закономерностей.
// Объяснение принципа работы
Скрипт создает бинарную матрицу пропущенных значений, указывающую, где отсутствуют значения, а затем анализирует эту матрицу для выявления закономерностей. Он вычисляет корреляции пропущенных значений для выявления признаков, которые, как правило, отсутствуют вместе, использует статистические тесты для оценки механизмов пропущенных значений и генерирует тепловые карты и столбчатые диаграммы, демонстрирующие закономерности пропущенных значений. Для каждого столбца с пропущенными данными он исследует взаимосвязи между пропущенными значениями и другими переменными с помощью статистических тестов и корреляционного анализа.
На основе выявленных закономерностей скрипт рекомендует подходящие стратегии восполнения недостающих данных:
- Среднее значение/медиана для числовых данных MCAR
- Прогностическое восполнение недостающей информации для данных MAR
- Специализированные подходы к обработке данных MNAR.
⏩ Получите недостающий скрипт анализатора данных
# Заключительные замечания
Эти пять скриптов посвящены решению основных задач анализа данных, с которыми сталкивается каждый специалист по работе с данными.
Каждый скрипт можно использовать независимо для решения конкретных задач исследования данных или объединить их в полноценный конвейер разведочного анализа данных. В результате получается систематический, воспроизводимый подход к исследованию данных, который экономит вам часы или дни на каждом проекте, гарантируя при этом, что вы не упустите важные сведения о ваших данных.
Приятных исследований!
Бала Прия С. — разработчик и технический писатель из Индии. Ей нравится работать на стыке математики, программирования, анализа данных и создания контента. В сферу её интересов и компетенции входят DevOps, анализ данных и обработка естественного языка. Она любит читать, писать, программировать и пить кофе! В настоящее время она работает над изучением и распространением своих знаний среди сообщества разработчиков, создавая учебные пособия, руководства, аналитические статьи и многое другое. Бала также создает увлекательные обзоры ресурсов и обучающие материалы по программированию.
Источник: www.kdnuggets.com



















