Разведочный анализ данных (Exploratory Data Analysis) – предварительное исследование Датасета (Dataset) с целью определения его основных характеристик, взаимосвязей между признаками, а также сужения набора методов, используемых для создания Модели (Model) Машинного обучения (ML).
Итак, в первой части статьи мы познакомились со следующими этапами разведочного анализа:
- Удаление дубликатов
- Обработка пропусков
- Обнаружение аномалий
И теперь продолжим глубже знакомиться с особенностями датасета.
Одномерный анализ
Описательная статистика
Прежде чем применять те или иные методы обучения, нам необходимо удостовериться, что они применимы к текущему датасету. Раздел описательной статистики включает в себя проверку на нормальность распределения и определение прочих статистических метрик. С этим нам поможет замечательная библиотека pandas-profiling. Установим самую свежую версию во избежание ошибок:
Запустим профайлер и передадим df в качестве аргумента:
Профайлер высчитывает основные статистические метрики для каждой переменной и датасета в целом:
К примеру, в признаке "Длительность" мы вычислили:
- Количество уникальных значений (Distinct)
- Количество пропусков (Missing)
- Вероятно, параметр "Бесконечность" ('Infinite'), рассчитываемый только для вещественных чисел, отыскивает сильно выделяющиеся значения, которыми иногда обозначают пропуски.
- Среднее значение (Mean)
- Минимум (Minimum)
- Максимум (Maximum)
- Количество нулей (Zeros)
- Память, задействованная этой переменной (Memory Size)
- Нормальность распределения (график)
Следующий интересный раздел – "Корреляции" ('Correlations'). Чем ярче (краснее / синее) ячейка, тем сильнее выражена корреляция между парой признаков. Диагональные ячейки игнорируются, поскольку являются результатом расчета коэффициента между переменной и ее копией.
Профайлер вычленил из датасета только числовые признаки, и потому матрица имеет размер 11 x 11. К примеру, "колебание уровня безработицы" и "европейская межбанковская ставка" сильно коррелируют друг с другом, но поскольку эти признаки второстепенны, в дальнейшем их можно объединить на этапе инжиниринга признаков (Feature Engineering). Зачастую целевая переменная не сильно коррелирует с предикторами.
Важность признаков
Прежде чем произвести инжиниринг признаков и сократить объем входных данных, стоит определить, какие признаки имеют первостепенную значимость, и в этом нам поможет Scikit-Learn и критерий Хи-квадрат (Chi-Squared Test):
Неожиданно, но самым важным признаком оказались длительность разговора и день звонка. Люди склонны брать кредитные продукты, если им позвонили в определенный день недели и разговор длился оптимальное время.
Многомерный анализ
Рассмотрение парных особенностей
Чего только не создаст комьюнити в Науке о данных! Для нужд разведочного анализа крайне кстати будет и попарные графики, и здесь на помощь приходит другой великолепный класс - seaborn.pairplot(). Каждая из переменных ляжет в основу одной из осей двумерного точечного графика, и так, пока все пары признаков не будут отображены. Сократим названия длинных переменных, чтобы уместить их на скромном отведенном пространстве:
Уменьшение размерности, стандартизация
Рассмотрев признаки по отдельности и попарно, мы пришли к выводу, что некоторые признаки могут быть как бы объединены с помощью специальной техники – Анализ главных компонент (PCA). Итак, давайте создадим заменяющий столбец, который представляет эти признаки в равной мере и тем самым уменьшим размер данных.
Выполняем Стандартизацию (Standartization) x, и это впоследствии станет частью тренировочных данных:
StandardScaler() на месте заменяет данные на их стандартизированную версию, и мы получаем признаки, где все значения как бы центрованы относительно нуля. Такое преобразование необходимо, чтобы сократить нагрузку на вычислительную систему компьютера, который будет обучать модель:
Анализ главных компонент (Principal Component Analysis) представляет собой метод уменьшения размерности больших наборов данных путем преобразования большого набора переменных в меньший с минимальными потерями информативности.
Мы получили два принципиальных компонента и путем такого сокращения понижаем размерность датасета без потерь.
Нормализация
Еще один шаг, не затронутый в примере выше, – это Нормализация (Normalization), и порой приходится выбирать между ею и стандартизацией. Мы нормализуем те же признаки, характеризующие состояние экономики и потому загрузим датасет в исходном виде еще раз:
Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.
Понравилась статья? Поддержите нас, поделившись статьей в социальных сетях и подписавшись на канал. И попробуйте наши курсы по Машинному обучению на Udemy.