Важен ли исследовательский анализ данных при чисто прогностическом моделировании?

23

При построении прогностической модели с использованием методов машинного обучения, какой смысл проводить исследовательский анализ данных (EDA)? Можно ли сразу перейти к генерации объектов и созданию вашей модели? Как важна описательная статистика, используемая в EDA?

blast00
источник
6
Вы спрашиваете об «поисковом анализе данных», но также включаете [descriptive-statistics]тег, и ваш последний вопрос - важна ли описательная статистика. В этом контексте вы имеете в виду вычисление различной описательной статистики только тогда, когда упоминаете EDA, или вы спрашиваете как об описательной статистике, так и EDA? Я спрашиваю, потому что многие люди (в том числе и я) думают о EDA как о не только описательной статистике.
gung - Восстановить Монику
Что именно такое «генерация функций»? Разве это не исследовательский процесс?
Эйнар
5
В последнее время мне дали 224 наблюдения 37 человек. Я планировал исследовать, среди прочего, влияние пола / пола, когда описательный анализ сказал мне, что было 36 женщин и 1 мужчина. Из-за этой описательной статистики я пропустил все анализы, связанные с полом / полом. Это было важно для меня, потому что описательные факторы повлияли на мой процесс построения модели. Подробнее об этих данных здесь stats.stackexchange.com/questions/352015/…
Бернхард

Ответы:

47

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

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

Среди вещей, которые я нашел, были:

  • Одна категориальная переменная почти идеально соответствовала цели.
  • У двух или трех переменных более половины их значений отсутствовало.
  • У пары переменных были экстремальные выбросы.
  • Две из числовых переменных были идеально коррелированы.
  • и т.п.

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

Так что да, EDA важна при машинном обучении!

Flounderer
источник
8
Когда я даю студентам задания, я тоже часто так делаю ;-).
gung - Восстановить Монику
14

Очевидно, да.

Анализ данных может привести вас ко многим пунктам, которые повредят вашей прогностической модели:

Неполные данные

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

Ненормальные данные

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

Удалить столбцы со слишком большой корреляцией

Хорошо, это немного противоречит моей предыдущей точке зрения, но английский не мой основной язык, поэтому я надеюсь, что вы поймете.

Я возьму тупой пример, скажем, вы анализируете набор данных футбольного стадиона, и у вас есть в Width, Length, Areaкачестве параметров. Что ж, мы можем легко представить, что эти три параметра будут сильно коррелированы. Слишком сильная корреляция между вашими столбцами ведет прогностическую модель в неправильном направлении. Вы можете решить сбросить один или несколько параметров.

Найти новые функции

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

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

Найдите какой алгоритм использовать

Я не могу рисовать графики прямо сейчас, но давайте сделаем это простым примером.

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

Если, в качестве примера, снова вам нужно было построить график (так, проанализируйте свои данные), вы могли бы понять, что график образует идеальный круг вокруг вашего значения 1. В таком случае было бы довольно очевидно, что вы могли бы использовать полиномиальный классификатор, чтобы получить отличную модель, вместо того, чтобы прыгать прямо в DNN. (Очевидно, учитывая, что в моем примере только два столбца, это не очень хороший пример, но вы понимаете, в чем дело)

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

IEatBagels
источник
8

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

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

Питер Флом - Восстановить Монику
источник
8

У нас была фраза по химии:

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

Я уверен, что то же самое относится к машинному обучению:

« Две недели обучения нейронной сети могут сэкономить 2 часа на просмотре входных данных ».

Вот те вещи, которые я должен пройти, прежде чем начинать любой процесс ML.

  • Распределите плотность каждой (непрерывной) переменной. Как искажаются цифры? Нужно ли преобразование журнала, чтобы данные имели смысл? Как далеко находятся выбросы? Есть ли какие-то ценности, которые не имеют физического или логического смысла?
  • Следите за NA. Обычно их можно просто отбросить, но если их много или они представляют критически важный аспект поведения системы, вам, возможно, придется найти способ воссоздания данных. Это может быть проект сам по себе.
  • Постройте каждую переменную против переменной ответа. Какой смысл вы можете извлечь из этого, просто взглянув на это? Есть ли очевидные кривые, которые можно снабдить функциями?
  • Оцените, нужна ли вам сложная модель ML в первую очередь. Иногда линейная регрессия - это все, что вам действительно нужно. Даже если это не так, это обеспечивает хорошее базовое соответствие для вашей модели ML для улучшения.

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

Ingolifs
источник
6

Статистическая перспектива:

Оставляя в стороне ошибки на этапе моделирования, есть три вероятных результата от попыток прогнозирования без предварительного выполнения EDA:

  1. Прогноз дает очевидные бессмысленные результаты, потому что ваши входные данные нарушили предположения вашего метода прогнозирования. Теперь вам нужно вернуться и проверить свои входные данные, чтобы выяснить, в чем заключается проблема, затем исправить проблему и повторить анализ. В зависимости от характера проблемы вам может даже потребоваться изменить методы прогнозирования. (Что вы имеете в виду, это категориальная переменная?)
  2. Прогнозирование дает результаты, которые являются плохими, но не очевидно плохими, потому что ваши данные нарушили предположения чуть менее очевидным способом. Либо вы все равно вернетесь и проверите эти предположения (в этом случае см. № 1 выше), либо вы примете плохие результаты.
  3. К счастью, ваши входные данные в точности соответствуют вашим ожиданиям (я понимаю, что это иногда случается), и прогноз дает хорошие результаты ... что было бы здорово, за исключением того, что вы не можете определить разницу между этим и # 2 выше.

Перспектива управления проектом:

Решение проблем с данными может занять значительное количество времени и усилий. Например:

  • Данные грязные, и вам нужно потратить время на разработку процессов для их очистки. (Например: время , я должен был закодировать автозамены для всех людей , которые продолжают писать неправильный год в январе, и люди , которые въезжают на дату в год поле, а система , которая разбор даты как MM / DD / YYYY вместо ДД / ММ / ГГГГ.)
  • Вам нужно задать вопросы о том, что означают данные, и только Джоан может ответить на них. Джоан уходит в шестимесячный отпуск, начинающийся через две недели после начала вашего проекта.
  • Ограничения на данные не позволяют вам предоставить все, что вы намеревались предоставить (см. Пример Бернхарда о невозможности проведения анализа по полу / полу, потому что в наборе данных была только одна женщина), и вам / вашим клиентам необходимо выяснить, что с этим делать ,

Чем раньше вы сможете выявить такие проблемы, тем выше ваши шансы удержать ваш проект на рельсах, вовремя завершить работу и порадовать своих клиентов.

Джеффри Брент
источник