"Анализ данных"
Обзор исследовательского анализа данных (EDA) с использованием набора данных Haberman
Практическое руководство, чтобы начать анализировать ваши данные.
«Данные будут говорить, если вы готовы слушать» - Джим Бергесон.
При правильном использовании данных можно получить представление и использовать их для множества целей. Необработанным данным не о чем рассказывать. Итак, чтобы понять и получить представление о данных, после процесса сбора данных в игру вступает исследовательский анализ данных. Для подготовки модели очень важно распознать закономерности и понять данные.
Эта статья разделена на следующие разделы:
- Обзор исследовательского анализа данных (EDA)
- EDA для набора данных Хабермана
Обзор исследовательского анализа данных (EDA):
Что такое EDA?
Процесс изучения и понимания данных для получения на их основе аналитической информации. Это может быть контекст, как «Посмотрите с первого взгляда» для решения любой проблемы Data Science. Это делает шаг ближе к цели решения возникшей проблемы.
Зачем применять EDA?
Обобщить важные функции, распознать закономерности и кривые распределения, обнаружить выбросы и аномалии, найти количество классов или распределение данных / классов, проверить основные предположения и т. Д. Путем анализа и визуализации. В основном, чтобы знать, что данные пытаются сказать!
Процесс EDA
- Вопрос
- Проверять
- Напишите
- Повторить
EDA для набора данных Haberman’s Survival:
Этот набор данных полезен для начала работы с EDA. Чтобы скачать набор данных, нажмите ссылку. Выполняя EDA, главное помнить о цели проекта. В данном случае цель состоит в том, чтобы предсказать, выживет человек после операции или нет.
На первом этапе мы попытаемся понять набор данных и его содержимое, задав следующие вопросы:
Что это за данные?
Как представлены выходные данные (Y-метки)?
Равномерно ли распределены классы (состояние выживания или состояние невыживания)?
Сколько функций включено для прогнозирования класса?
Теперь, после того, как мы зададим правильные вопросы, мы напишем код и узнаем ответ, много раз глядя на данные, можно узнать некоторые ответы, тогда на этом этапе важно проверить свои ответы или интуитивные предположения.
После этого узнайте свой результат и запишите наблюдения.
Например; из приведенного выше кода можно понять:
Наблюдения:
- Статус выживаемости после успешной операции (1) почти в 2,5 раза по сравнению с неудачей (2)
- Данные распределяются неравномерно
Для следующего шага
Какие функции набора данных важны?
Как функции связаны с каждым из классов?
Есть ли какой-либо шаблон для класса и функций / характеристик?
На это можно ответить с помощью одномерного, двухвариантного построения или построения различных графиков на основе набора данных, таких как прямоугольная диаграмма, гистограммы, графики скрипки и т. Д. Здесь я показал некоторые из решений, чтобы узнать больше, отметьте Github (содержит все подробные EDA по набору данных Хабермана).
Одномерное построение:
Выход:
Наблюдения:
- Оба класса перекрывают друг друга, поэтому атрибуту возраста не следует придавать большого значения для коэффициента выживаемости или показателя non_survival.
- Набор данных содержит возраст от 58 до 70 лет.
Выход:
Наблюдения:
- Большинство значений обоих классов перекрываются, поэтому мы не можем ничего предсказать только на основе вспомогательных.
- Большинство случаев выживания и невыживания варьируются от 0 до 25.
Двухвариантное построение:
Выход:
Наблюдения:
- Невозможно различить ни одно из состояний выживания с границей решения, так как все они разбросаны по всему графу.
- На графике возраст против вспомогательного узла по мере увеличения значения возраста и количества узлов - шансы состояния выживания уменьшаются с минимальными исключениями.
Для обнаружения выбросов используются базовые статистические концепции, такие как среднее значение, медиана, режим, процентили, квартили и т. Д.:
Например;
Выход:
Наблюдение:
1. Не обязательно, поскольку количество пораженных узлов увеличивается, вероятность невыживания увеличивается.
Точно так же попробуйте применить различные статистические концепции, чтобы узнать свой набор данных. Я применил некоторые концепции в финальной версии ipynb.
В основном среднее значение бесполезно при обнаружении выбросов, во многих случаях для этого может пригодиться медиана.
Сюжеты для усов и скрипки:
Это может помочь получить представление о диапазоне значений конкретной функции.
Выход:
CDF и PDF:
Функция совокупной плотности и функция плотности вероятности - дает процент значений / помогает найти процент ошибок.
Выход:
Наблюдение:
1. Оба класса пересекаются; невозможно идентифицировать.
Теперь построим функциональные графики CDF и PDF;
Выход:
Наблюдения:
- Трудно интерпретировать одно состояние пациента, а данные распределены неравномерно.
- Каким-то образом не исключено, что количество вспомогательных узлов и возраст увеличивается, выживаемость снижается.
Это все.
Я рассмотрел базовый подход к исследованию данных. Есть много разных способов выполнить EDA, все зависит от набора данных и наблюдений.
Вы можете найти исходный код на Github.
Если у вас возникла путаница относительно какой-либо функции / класса библиотеки, я прошу вас проверить документацию по этому поводу. Кроме того, в коде я использовал множество концепций, которые не объяснил. Я прошу вас понять некоторые основы статистики и вероятности, поскольку обе темы являются ключевыми для анализа данных.
Для получения дополнительной информации посетите:
Https://www.youtube.com/watch?v=YXLVjCKVP7U
https://medium.com/analytics-vidhya/pdf-pmf-and-cdf-in-machine-learning-225b41242abe
Https://towardsdatascience.com/ways-to-detect-and-remove-the-outliers-404d16608dba
Https://medium.com/@srimalashish/why-eda-is-needed-for-machine-learning-233b6e4d5083
Если есть какие-либо исправления и улучшения или у вас есть какие-либо вопросы, не стесняйтесь связаться со мной через LinkedIn.