Анализ данных в Sweetviz

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

сладкий, а именно

После установки Sweetviz (с помощью pip install sweetviz) просто загрузите фреймы данных pandas, как обычно, а затем вызовите analysis(), compare() или compare_intra().

импортировать сладкое, а именно
импортировать панд как pd
поезд = pd.read_csv("train.csv")
тест = pd.read_csv("test.csv")

Теперь у нас есть 2 фрейма данных (обучающий и тестовый), и мы хотели бы проанализировать целевое значение «Выживший». Я хочу отметить, что в этом случае мы заранее знаем имя целевого столбца, но указывать целевой столбец по-прежнему необязательно. Мы можем сгенерировать отчет с помощью этой строки кода:

my_report = sweetviz.compare([поезд, "Поезд"], [тест, "Тест"], "Выжил")

Запуск этой команды выполнит анализ и создаст объект отчета. Чтобы получить результат, просто используйте команду show_html():

my_report.show_html("Report.html") # Без указания имени файла по умолчанию будет SWEETVIZ_REPORT.html

Общая сводка

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

Обратите внимание, что Sweetviz сделает наилучшую оценку, чтобы определить тип данных каждого столбца, между числовым, категорией/логическим и текстовым. 

Анализ данных в Sweetviz sweetviz

Ассоциации

Этот график представляет собой композицию изображений из Drazen Zaric: Better Heatmaps and Correlation Matrix Plots in Python и концепций из Shaked Zychlinski: The Search for Categorical Correlation.

По сути, в дополнение к отображению традиционных числовых корреляций, он объединяет на одном графике как корреляция числовые, но и коэффициент неопределенности (для категориально-категориальных) и коэффициент корреляции (для категориально-числовых). Квадраты представляют собой переменные, связанные с категориальными характеристиками, а кружки представляют числовые корреляции. Обратите внимание, что тривиальная диагональ оставлена пустой для ясности.

Категориально-категориальные ассоциации (обеспечиваемые коэффициентом неопределенности) являются АСИММЕТРИЧНЫМИ, что означает, что каждая строка представляет, насколько заголовок строки (слева) дает информацию о каждом столбце. Например, «Sex», «Pclass» и «Fare» — это элементы, которые дают больше всего информации о «Survived». Для набора данных Титаника эта информация довольно симметрична, но это не всегда так.

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

Анализ данных в Sweetviz sweetviz

Выбор переменной

Когда целевая переменная указана, она появится первой в специальном черном поле. В настоящее время целями могут быть только числовые и логические объекты.

Из этой сводки мы можем сделать вывод, что «Выживший» не имеет пропущенных данных в обучающем наборе (891, 100%), что есть 2 различных возможных значения (представляющих менее 1% всех значений), и из графика это может быть подсчитано, что около 60 % не выжили.

Качественные и логические данные

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

Анализ данных в Sweetviz sweetviz

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

Количественные данные

Числовые данные показывают больше информации о его сводке. Здесь мы видим, что в этом случае отсутствует около 20 % данных (21 % в тестовых данных, что очень согласуется).

Анализ данных в Sweetviz sweetviz

Обратите внимание, что целевое значение (в данном случае «выживший») отображается в виде линии прямо над графиком распределения. Это позволяет мгновенно анализировать целевое распределение относительно других переменных.

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

Детали количественной переменной

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

Эти кнопки изменяют количество «бинов», отображаемых на графике. Вы можете выбрать один из следующих вариантов: Авто, 5, 15, 30.

Чтобы получить доступ к этим кнопкам, вы должны «зафиксировать» текущую функциональность, нажав на них. После этого функция имеет КРАСНЫЙ КОНТУР, показывающий, что она заблокирована и вы можете получить доступ к области сведений.

Анализ данных в Sweetviz sweetviz

Текстовые данные

На данный момент все, что система не считает числовым или категориальным, будет считаться «текстом». Текстовые функции в настоящее время показывают только число (в процентах) в качестве статистики.

Анализ данных в Sweetviz sweetviz

Сравнение субпопуляций

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

Для этого Sweetviz предлагает функцию compare_intra(). Чтобы использовать его, вы предоставляете логический тест, который разделяет популяцию (здесь мы пытаемся обучить["Пол"] == 'мужской', чтобы получить представление о разных гендерных популяциях) и даете каждой подгруппе. Например:

my_report = sweetviz.compare_intra(train, train["Sex"] == 'мужчина', ["мужчина", "женщина"], 'выжил')my_report.show_html() # Без указания имени файла по умолчанию будет SWEETVIZ_REPORT.html

Это дает следующий анализ:

Анализ данных в Sweetviz sweetviz

Обратите внимание, что целевое значение (в данном случае «выживший») теперь отображается в виде отдельных линий, по одной для каждого набора сравниваемых данных (например, мужчина в синем цвете, женщина в оранжевом).

Пример набора данных Титаника

идентификатор пассажира

Анализ данных в Sweetviz sweetviz
  • Распределение ID и живучести равномерное и упорядоченное.

Секс

Анализ данных в Sweetviz sweetviz
  • В два раза больше мужчин, чем женщин
  • Одинаковые распределения в обучающих и тестовых наборах

Возраст

Анализ данных в Sweetviz sweetviz
  • 20 % отсутствующих данных, согласованные отсутствующие данные и распределение между Train и Test

Имя

Анализ данных в Sweetviz sweetviz
  • Нет недостающих данных

Pкласс

Анализ данных в Sweetviz sweetviz
  • Выживаемость близко соответствует классу (первый класс, скорее всего, выживет, третий класс, наименее вероятно)

СибСп

Анализ данных в Sweetviz sweetviz
  • Кажется, что пик живучести приходится на 1 и в некоторой степени на 2, но (смотря на панель сведений, не показанную здесь) наблюдается крутой спад на 3 и выше. Многодетные семьи не могли этого сделать или, может быть, были беднее?

парк

Анализ данных в Sweetviz sweetviz
  • Похожие актеры

Проездной билет

  • ~80 % различных значений, т.е. в среднем примерно 1 из 5 общих билетов

Транспортные расходы

Анализ данных в Sweetviz sweetviz
  • Как и ожидалось, как и в случае с классом P, более высокие тарифы сохранились лучше (хотя размер выборки становится довольно тонким на более высоких уровнях).

Кабина

Анализ данных в Sweetviz sweetviz
  • 78% отсутствуют данные

Встроенный

Анализ данных в Sweetviz sweetviz
  • 3 различных значения (S, C, Q)

Общий анализ

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

Тестовые и тренировочные данные

Тест содержит примерно на 50 % строк меньше.

Train и Test очень близки по распределению недостающих данных.

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

Ассоциативный/корреляционный анализ

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

отсутствуют данные

  • Существенных недостающих данных нет, за исключением возраста (~ 20 %) и салона (~ 77 %).
Делиться
ru_RURU