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

Что такое ЭДА?

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

Аналогичной аналогией может быть тестирование программного обеспечения методом «черного ящика». Здесь у нас нет большой ясности с набором данных (например, мы не знаем, что представляет собой программное обеспечение) и пытаемся выяснить некоторые идеи, используя статистические графики. EDA — это один из первых и основных шагов, которые необходимо выполнить в любом наборе данных, прежде чем мы сможем поиграть с многочисленными алгоритмами ML и изучить их производительность на данных.

О КОМПЛЕКТЕ ДАННЫХ:

Прежде чем мы перейдем к части анализа, вот краткое описание набора данных, в котором был выполнен EDA. В своем анализе я использовал набор данных HABERMAN. Набор данных содержит случаи из исследования, которое проводилось между 1958 и 1970 годами в больнице Биллингс Чикагского университета по выживаемости пациентов, перенесших операцию по поводу рака молочной железы. Набор данных можно получить здесь (спасибо Kaggle, который помогает начинающие инженеры ML/AI с такими красивыми хранилищами данных). В нашей цели мы пытаемся использовать такие функции, как Возраст пациентов, Год операции, Вспомогательные узлы (которые можно назвать независимыми переменными) из наших данных, чтобы увидеть Статус выживания (также зависимая переменная в наш анализ) пациента.

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

ЗАГРУЗКА БИБЛИОТЕК И ДАННЫХ:

Я использовал Jupyter Notebook для проведения анализа. Здесь мы просто импортируем все необходимые библиотеки, необходимые для загрузки данных, выполнения операций с данными и их построения.

Я добавил функции в виде имен столбцов во фрейме данных, поскольку данные (CSV-файл) из Kaggle не имеют имен функций, что может привести к некоторой двусмысленности.

Сбалансированные и несбалансированные данные:

Набор данных считается сбалансированным, если он имеет равное или приблизительно равное (скажем, 60–40 или 40–60 разделение) количество точек данных для зависимой переменной (или также называется меткой класса). Наши данные кажутся несбалансированными, поскольку они составляют 75% точек данных для выживших пациентов и только 25% для другого класса. Обратите внимание, что анализ данных для несбалансированных данных необходимо проводить иначе, чем для набора сбалансированных данных.

2-D ДИАГРАММЫ РАСПРЕДЕЛЕНИЯ:

Двумерная диаграмма рассеяния обычно представляет собой график между двумя объектами в наборе данных. Здесь мы отложили «Возраст пациента» по оси X и «Вспомогательные узлы» по оси Y. Мы разделили классы по цветам (синий — выжил, оранжевый — не выжил). Из беглого взгляда на точечную диаграмму видно, что пациент в возрасте до 32 лет всегда выживал, независимо от количества добавочных лимфоузлов, которые у него были. Мы не могли сделать вывод из этого сюжета, так как он сильно перекрывается.

УЧАСТКИ РАСПРЕДЕЛЕНИЯ:

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

Хотя мы не можем сделать много выводов из одномерного анализа возраста пациентов, мы видим, что пациенты моложе 35 лет всегда выживают, а в возрасте от 35 до 40 лет имеют больше шансов на выживание.

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

ЯЩИКИ:

Блочная диаграмма используется для представления конкретных значений процентилей 25, 50 и 75 для данной переменной.

Из диаграмм можно сделать вывод, что пациенты в возрасте до 45 лет в основном выживают со значением ошибки 25%. Точно так же пациенты в возрасте старше 60 лет не выживают при значении ошибки 25%.

ПАРНЫЕ УЧАСТКИ:

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

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

СОВМЕСТНЫЕ УЧАСТКИ:

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

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

Резюме нашего анализа:

Подводя итог нашему анализу, мы использовали одномерные двумерные диаграммы рассеяния, ящичные диаграммы, парные диаграммы и совместные диаграммы для нашего исследовательского анализа данных. Можно использовать диаграммы рассеяния D, графики скрипки, тепловые карты. Иногда необработанные показатели, такие как СРЕДНЕЕ, МЕДИАНА и МОДА, могут дать отличное представление о данных. EDA — это первый и основной шаг в машинном обучении, который помогает нам лучше понять имеющиеся данные, чтобы создавать на их основе хорошие модели.

КОНТРОЛЬНЫЙ СПИСОК EDA:

  1. Всегда выполняйте EDA для своих данных, прежде чем начинать строить модели ML.
  2. Установите свою цель (например, поиск статуса выживания в Хабермане) прямо перед выполнением EDA в наборе данных.
  3. Постарайтесь получить представление и использовать все доступные инструменты построения графиков.
  4. Иногда данные очень сильно перекрываются (как у Хабермана), так что научитесь с этим жить.
  5. EDA полностью зависит от вашего энтузиазма в использовании всех доступных инструментов для анализа данных и извлечения из них некоторой информации. Так что давай СТАНЬ ШЕРЛОКОМ!

Использованная литература:

  1. https://www.kaggle.com/gilsousa/habermans-survival-data-set
  2. www.appliedaicourse.com
  3. https://seaborn.pydata.org