Вы не можете эффективно моделировать то, чего не понимаете

Вы выполняете понимание данных… чтобы понять.

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

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

Если понимание данных — это процесс, что он влечет за собой?

Делать вещи простыми всегда лучший способ.

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

  • Идентификация и расстановка приоритетов
  • Профилирование
  • Оценка качества

Давайте поговорим о каждом из них.

Упражнение 1. Определите и расставьте приоритеты для ваших данных

Когда дело доходит до идентификации и профилирования данных, вам необходимо сделать две вещи:

  • Выясните, какие данные вам нужны для решения проблемы.
  • Определите, отражают ли эти данные то, что вы пытаетесь смоделировать.

Как узнать, какие данные мне нужны?

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

  • Какие данные думаю мне нужны?
  • Насколько важны эти данные для моего успеха по шкале от 1 до 10?
  • Насколько реально получить эти данные?
  • Нужны ли мне мои примеры с самым низким уровнем детализации (отдельные транзакции или записи)?
  • Нужно ли мне агрегировать данные до определенного уровня детализации?
  • Нужны ли мне длинные, узкие данные для задачи типа временных рядов?
  • Нужны ли мне данные в широкой таблице с множеством функций, описывающих каждую строку?
  • Добавляют ли функции, которые я рассматриваю, больше шума, чем сигнала?
  • Как эти особенности будут полезны в моем исследовании и моделировании явления?
  • Какие предположения я делаю об этих данных, как они были собраны и как они будут собираться в будущем?

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

Как узнать, отражают ли данные то, что я пытаюсь смоделировать?

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

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

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

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

Упражнение 2. Профилирование ваших данных

Профилирование данных требует много исследований.

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

Если вы не знаете, как профилировать данные, не бойтесь. Мы вас прикрыли. Вот некоторые из характеристик и качеств, которые вы должны изучить в своих данных:

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

Все это звучит как МНОГО работы.

К счастью, вам не нужно кодировать ВСЕ это самостоятельно. Существует ряд библиотек, которые могут помочь вам профилировать ваши данные. Одна из моих самых любимых библиотек — sweetviz..

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

Вы можете узнать больше об этом, прочитав статью ниже.



Мероприятие 3: Оценка качества данных

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

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

Если вы привыкли к модельно-ориентированному мышлению на протяжении большей части своего опыта работы с машинным обучением, я бы посоветовал вам подумать о ориентированном на данные взгляде, когда вы пытаетесь улучшить свои результаты обучения, попробуйте спросить, как вы можете сделать свой набор данных еще лучше?

— Эндрю Нг

Может быть полезно рассматривать качество данных через две призмы: техническое качество и деловое качество.

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

  • Неверные данные. Имеются ли неверные значения или перегруженные поля?
  • Отсутствующие данные — есть ли отсутствие контента или действительного контента?
  • Можете ли вы определить по набору данных, правильно ли были записаны данные?
  • Есть ли аномалии или бессмысленные значения?
  • Видите ли вы какие-либо опечатки, несколько форматов, представляющих одни и те же данные, отсутствующие значения/значения по умолчанию?

Оценка бизнес-качества ваших данных часто является более важной и трудной для оценки. При оценке качества данных с этой точки зрения вы ищете или задаете следующие вопросы:

  • Можете ли вы определить, были ли записаны все соответствующие данные?
  • Что еще было бы полезно, чтобы рассказать полную историю, которую вы пытаетесь передать?
  • Релевантность — имеет ли это значение для моделируемых явлений?
  • Точность. Является ли информация точной или могут быть ошибки, внесенные людьми?
  • Согласованность. Видим ли мы, что применяются разные бизнес-правила?
  • Своевременность. Можем ли мы получить к ней доступ в удобные временные рамки?
  • Сопоставимые — можем ли мы сравнивать значения из разных источников?
  • Полнота. Рассказывают ли данные всю историю?

Краткое содержание

Понимание данных — это большая работа.

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

  • Проверка данных, чтобы понять, что у нас есть и как это организовано
  • Оценка текущего качества данных и выявление возможных проблем
  • Определение общей полезности данных для решения проблемы
  • Оценка других данных, которые могут быть полезны при объединении

В конце процесса задумайтесь о следующем:

  • Чему я научился?
  • Помогает ли это мне понять явление лучше, чем раньше?
  • Имеют ли мои теории о том, что может воздействовать на мою проблему, влиять на нее или вызывать ее, больше ясности?

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

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

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

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение наших еженедельных информационных бюллетеней (Еженедельник глубокого обучения и Информационный бюллетень Comet), присоединиться к нам в Slack и следить за Comet в Twitter и LinkedIn для получения ресурсов, событий и многое другое, что поможет вам быстрее создавать лучшие модели машинного обучения.