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

Чтобы создать высококачественные обучающие наборы данных, ученые машинного обучения очищают данные в итеративном процессе. Очистка данных — это не просто удаление «плохих» данных; это сложный процесс, включающий удаление и/или изменение данных, которые могут быть неверными, неуместными, неполными или неправильно отформатированными. Как только ученые определят точки данных, которые могут повредить производительности их моделей машинного обучения, они должны найти способы их преобразования, чтобы максимизировать точность набора данных.

Очистка данных требует знания используемого алгоритма машинного обучения и того, как он интерпретирует данные, а также домена, в котором он развертывается. Например, если ваше приложение предназначено для обнаружения мошенничества с кредитными картами, ваш набор данных может включать различные атрибуты, такие как сумма транзакции, валюта, время и местоположение. Здесь очистка данных может включать обеспечение согласованности валюты всех транзакций или выявление повторяющихся транзакций и их пометку. Кроме того, некоторые значения атрибутов могут отсутствовать или быть повреждены из-за человеческих или программных ошибок. Решение об исключении таких наблюдений зависит от алгоритма машинного обучения, потребляющего данные. В то время как большинство методов машинного обучения не могут легко понять пропущенные значения, такие алгоритмы, как ближайшие соседи или случайные леса Бреймана, по своей сути обрабатывают их. Таким образом, очистка данных представляет собой сложный и повторяющийся процесс. В этом блоге мы перечисляем несколько распространенных проблем очистки данных, с которыми вам, возможно, придется столкнуться при создании высококачественного набора данных.

Форматирование данных

Сбор данных из разных источников необходим для поддержания изменчивости в наборе данных и обеспечения надежности модели. Однако это также приводит к потенциальным ошибкам или несоответствиям, поэтому данные сначала необходимо стандартизировать для дальнейшего использования. Форматирование данных часто неправильно понимается как относящееся только к стандартизации форматов файлов; например, мы можем захотеть, чтобы все изображения в наборе данных были в формате jpeg или png. Однако стандартизация формата включает в себя гораздо больше: нам нужно убедиться, что все изображения имеют одинаковый размер, если этого требует нижестоящий алгоритм, или правильная временная синхронизация. В случае табличных или категорийных данных все атрибуты должны иметь согласованные форматы, независимо от того, является ли атрибут датой, валютой или адресом. Кроме того, нам необходимо убедиться, что значения для каждого атрибута находятся в пределах ограничений данных. Например, если категориальные данные содержат атрибут вероятности, то каждое значение должно быть числом с плавающей запятой с указанным числом десятичных разрядов и должно иметь значения от 0 до 1.

Поврежденные данные

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

Дублирующиеся/неактуальные данные

Данные, полученные из разных источников за разные периоды времени, часто могут приводить к записи либо дублирующихся, либо нерелевантных точек данных. Например, при сборе данных для приложения для автономного вождения, скажем, обнаружения знаков остановки, мы можем в конечном итоге собрать много данных о дорожном движении, которые не содержат никаких знаков остановки. С другой стороны, мы могли бы собирать данные об одном и том же знаке «стоп» несколько раз. Дублирующиеся или нерелевантные точки данных приводят к серьезным проблемам, таким как асимметрия данных или дисбаланс классов при обучении моделей машинного обучения. Нерелевантные данные можно просто удалить непосредственно из репозитория, однако работа с повторяющимися данными является делом выбора и является популярной темой исследований. Выявление повторяющихся точек данных и применение к ним адекватного преобразования может значительно обогатить ваши наборы данных.

Отсутствующие данные

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

  • Отсутствует совершенно случайно (MCAR)
  • Отсутствует случайным образом (MAR)
  • Не случайно (NMAR)

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

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

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

  • Точечные выбросы. Отдельные наблюдения, не соответствующие общему распределению.
  • Коллективные выбросы. Подмножества наблюдений, которые не соответствуют общему распределению.
  • Контекстные выбросы: шаблонные выбросы, которые обычно вызваны шумом.

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

  • Одномерный метод. Этот метод ищет выбросы в одном пространстве признаков. Самый простой способ добиться этого — использовать ящичные диаграммы или межквартильный диапазон (IQR), как показано в примере ниже.
  • Многомерный метод. Этот метод ищет выбросы в n-мерном пространстве признаков, соответствующих n коррелирующим признакам. Самый простой способ сделать это — обучить прогностическую модель выявлению выбросов. За прошедшие годы такие алгоритмы, как случайная согласованная выборка (RANSAC), приобрели широкую популярность благодаря способности выполнять особенно эффективное отбрасывание выбросов.

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

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

Первоначально опубликовано на https://innotescus.io 12 мая 2020 г.