"Анализ данных"

Обзор исследовательского анализа данных (EDA) с использованием набора данных Haberman

Практическое руководство, чтобы начать анализировать ваши данные.

«Данные будут говорить, если вы готовы слушать» - Джим Бергесон.

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

Эта статья разделена на следующие разделы:

  1. Обзор исследовательского анализа данных (EDA)
  2. EDA для набора данных Хабермана

Обзор исследовательского анализа данных (EDA):

Что такое EDA?

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

Зачем применять EDA?

Обобщить важные функции, распознать закономерности и кривые распределения, обнаружить выбросы и аномалии, найти количество классов или распределение данных / классов, проверить основные предположения и т. Д. Путем анализа и визуализации. В основном, чтобы знать, что данные пытаются сказать!

Процесс EDA

  1. Вопрос
  2. Проверять
  3. Напишите
  4. Повторить

EDA для набора данных Haberman’s Survival:

Этот набор данных полезен для начала работы с EDA. Чтобы скачать набор данных, нажмите ссылку. Выполняя EDA, главное помнить о цели проекта. В данном случае цель состоит в том, чтобы предсказать, выживет человек после операции или нет.

На первом этапе мы попытаемся понять набор данных и его содержимое, задав следующие вопросы:

Что это за данные?

Как представлены выходные данные (Y-метки)?

Равномерно ли распределены классы (состояние выживания или состояние невыживания)?

Сколько функций включено для прогнозирования класса?

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

После этого узнайте свой результат и запишите наблюдения.

Например; из приведенного выше кода можно понять:

Наблюдения:

  1. Статус выживаемости после успешной операции (1) почти в 2,5 раза по сравнению с неудачей (2)
  2. Данные распределяются неравномерно

Для следующего шага

Какие функции набора данных важны?

Как функции связаны с каждым из классов?

Есть ли какой-либо шаблон для класса и функций / характеристик?

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

Одномерное построение:

Выход:

Наблюдения:

  1. Оба класса перекрывают друг друга, поэтому атрибуту возраста не следует придавать большого значения для коэффициента выживаемости или показателя non_survival.
  2. Набор данных содержит возраст от 58 до 70 лет.

Выход:

Наблюдения:

  1. Большинство значений обоих классов перекрываются, поэтому мы не можем ничего предсказать только на основе вспомогательных.
  2. Большинство случаев выживания и невыживания варьируются от 0 до 25.

Двухвариантное построение:

Выход:

Наблюдения:

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

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

Например;

Выход:

Наблюдение:

1. Не обязательно, поскольку количество пораженных узлов увеличивается, вероятность невыживания увеличивается.

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

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

Сюжеты для усов и скрипки:

Это может помочь получить представление о диапазоне значений конкретной функции.

Выход:

CDF и PDF:

Функция совокупной плотности и функция плотности вероятности - дает процент значений / помогает найти процент ошибок.

Выход:

Наблюдение:

1. Оба класса пересекаются; невозможно идентифицировать.

Теперь построим функциональные графики CDF и PDF;

Выход:

Наблюдения:

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

Это все.

Я рассмотрел базовый подход к исследованию данных. Есть много разных способов выполнить EDA, все зависит от набора данных и наблюдений.

Вы можете найти исходный код на Github.

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

Для получения дополнительной информации посетите:

Https://www.youtube.com/watch?v=YXLVjCKVP7U

https://medium.com/analytics-vidhya/pdf-pmf-and-cdf-in-machine-learning-225b41242abe

Https://seaborn.pydata.org/

Https://towardsdatascience.com/ways-to-detect-and-remove-the-outliers-404d16608dba

Https://medium.com/technology-nineleaps/basics-of-statistics-for-machine-learning-engineers-ii-d25c5a5dac67

Https://medium.com/@srimalashish/why-eda-is-needed-for-machine-learning-233b6e4d5083

Если есть какие-либо исправления и улучшения или у вас есть какие-либо вопросы, не стесняйтесь связаться со мной через LinkedIn.