Подготовка данных для машинного обучения: пошаговое руководство
Опубликовано: 2023-07-07Несколько лет назад, когда Spotify работал над своим механизмом рекомендаций, он столкнулся с проблемами, связанными с качеством данных, используемых для обучения алгоритмов машинного обучения (ML). Если бы они не решили вернуться к этапу подготовки данных и вложить дополнительные усилия в очистку, нормализацию и преобразование своих данных, скорее всего, наше прослушивание не было бы таким приятным.
Тщательная подготовка данных для машинного обучения позволила потоковой платформе обучить мощный механизм машинного обучения, который точно прогнозирует предпочтения пользователей в отношении прослушивания и предлагает персонализированные музыкальные рекомендации. Spotify избежал серьезной ошибки, которую компании совершают, когда дело доходит до подготовки данных для машинного обучения — они не вкладывают достаточно усилий или вообще пропускают этап.
Многие компании предполагают, что для создания точных прогнозов достаточно подачи больших объемов данных в механизм машинного обучения. Правда в том, что это может привести к ряду проблем, например, к алгоритмической предвзятости или ограниченной масштабируемости.
Успех машинного обучения сильно зависит от данных. И печально то, что все наборы данных ошибочны. Вот почему подготовка данных имеет решающее значение для машинного обучения. Это помогает исключить неточности и предвзятость, присущие необработанным данным, так что результирующая модель машинного обучения генерирует более надежные и точные прогнозы.
В этом сообщении блога мы подчеркиваем важность подготовки данных для машинного обучения и делимся нашим подходом к сбору, очистке и преобразованию данных. Итак, если вы новичок в ML и хотите, чтобы ваша инициатива увенчалась успехом, продолжайте читать.
Как подготовить данные для машинного обучения
Первый шаг к успешному внедрению ML — это четкая формулировка вашей бизнес-задачи. Это не только гарантирует, что создаваемая вами модель машинного обучения соответствует потребностям вашего бизнеса, но также позволяет сэкономить время и деньги на подготовке данных, которые могут не иметь значения.
Кроме того, четкая формулировка проблемы делает модель ML объяснимой (это означает, что пользователи понимают, как она принимает решения). Это особенно важно в таких секторах, как здравоохранение и финансы, где машинное обучение оказывает большое влияние на жизнь людей.
Когда бизнес-задача решена, пришло время приступить к работе с данными.
В целом процесс подготовки данных для ML можно разбить на следующие этапы.
- Сбор данных
- Очистка данных
- Преобразование данных
- Разделение данных
Давайте подробнее рассмотрим каждый.
Сбор данных
Подготовка данных для машинного обучения начинается со сбора данных. На этапе сбора данных вы собираете данные для обучения и настройки будущей модели машинного обучения. При этом помните о типе, объеме и качестве данных: эти факторы определяют наилучшую стратегию подготовки данных.
Машинное обучение использует три типа данных: структурированные, неструктурированные и полуструктурированные.
- Структурированные данные организованы определенным образом, обычно в формате таблицы или электронной таблицы. Примеры структурированных данных охватывают диапазон информации, собранной из баз данных или транзакционных систем.
- К неструктурированным данным относятся изображения, видео, аудиозаписи и другая информация, которая не соответствует обычным моделям данных.
- Полуструктурированные данные не соответствуют формату табличной модели данных. Тем не менее, он не полностью дезорганизован, так как содержит некоторые структурные элементы, такие как теги или метаданные, которые облегчают интерпретацию. Примеры включают данные в форматах XML или JSON.
Структура данных определяет оптимальный подход к их подготовке для машинного обучения. Например, структурированные данные можно легко организовать в таблицы и очистить с помощью дедупликации, заполнения отсутствующих значений или стандартизации форматов данных. Напротив, для извлечения соответствующих признаков из неструктурированных данных требуются более сложные методы, такие как обработка естественного языка или компьютерное зрение.
На оптимальный подход к подготовке данных для ML также влияет объем обучающих данных. Для большого набора данных может потребоваться выборка, которая включает выбор подмножества данных для обучения модели из-за вычислительных ограничений. Меньший, в свою очередь, может потребовать от ученых данных предпринять дополнительные шаги для создания большего количества данных на основе существующих точек данных (подробнее об этом ниже).
Качество собранных данных также имеет решающее значение. Использование неточных или необъективных данных может повлиять на результаты машинного обучения, что может иметь серьезные последствия, особенно в таких областях, как финансы, здравоохранение и уголовное правосудие. Существуют методы, которые позволяют корректировать данные с учетом ошибок и предвзятости. Однако они могут не работать с набором данных, который изначально искажен. Как только вы узнаете, что такое «хорошие» данные, вы должны решить, как их собирать и где их найти. Для этого есть несколько стратегий.
- Сбор данных из внутренних источников. Если у вас есть информация, хранящаяся в корпоративном хранилище данных, вы можете использовать ее для обучения алгоритмов машинного обучения. Эти данные могут включать транзакции продаж, взаимодействие с клиентами, данные из социальных сетей и данные из других источников.
- Сбор данных из внешних источников. Вы можете обратиться к общедоступным источникам данных, таким как правительственные порталы данных, академические репозитории данных и сообщества по обмену данными, такие как Kaggle, репозиторий машинного обучения UCI или Google Dataset Search.
- Веб-скрапинг: этот метод включает в себя извлечение данных с веб-сайтов с помощью автоматизированных инструментов. Этот подход может быть полезен для сбора данных из источников, недоступных другими способами, таких как обзоры продуктов, новостные статьи и социальные сети.
- Опросы: этот подход можно использовать для сбора определенных данных от определенной целевой аудитории. Это особенно полезно для сбора информации о предпочтениях или поведении пользователей.
Однако иногда эти стратегии не дают достаточно данных. Когда это происходит, вы можете компенсировать недостаток точек данных с помощью этих методов.
- Расширение данных: это позволяет вам генерировать больше данных из существующих образцов, преобразуя их различными способами, например, вращая, перемещая или масштабируя.
- Активное обучение: это позволяет вам выбрать наиболее информативную выборку данных для маркировки экспертом-человеком.
- Передача обучения: это включает использование предварительно обученных алгоритмов машинного обучения, применяемых для решения связанной задачи, в качестве отправной точки для обучения новой модели машинного обучения с последующей точной настройкой новой модели на новых данных.
- Совместный обмен данными: это предполагает работу с другими исследователями и организациями для сбора и обмена данными для достижения общей цели.
Очистка данных
Следующим шагом для подготовки данных для машинного обучения является их очистка. Очистка данных включает поиск и исправление ошибок, несоответствий и отсутствующих значений. Существует несколько подходов к очистке данных.
Обработка отсутствующих данных
Отсутствующие значения — распространенная проблема в ML. С этим можно справиться путем вменения (подумайте: заполнение отсутствующих значений прогнозируемыми или оценочными данными), интерполяции (получения отсутствующих значений из окружающих точек данных) или удаления (простого удаления строк или столбцов с отсутствующими значениями из набора данных).
Обработка выбросов
Выбросы — это точки данных, которые значительно отличаются от остальной части набора данных. Выбросы могут возникать из-за ошибок измерения, ошибок ввода данных или просто потому, что они представляют собой необычные или экстремальные наблюдения. Например, в наборе данных о зарплатах сотрудников выбросом может быть сотрудник, который зарабатывает значительно больше или меньше других. С выбросами можно справиться, удалив их, преобразовав, чтобы уменьшить их влияние, упорядочить (подумайте: заменить экстремальные значения ближайшими значениями, которые находятся в пределах нормального диапазона распределения) или рассматривать их как отдельный класс данных.
Удаление дубликатов
Еще один шаг в процессе подготовки данных для машинного обучения — удаление дубликатов. Дубликаты не только искажают прогнозы машинного обучения, но также занимают место в хранилище и увеличивают время обработки, особенно в больших наборах данных. Чтобы удалить дубликаты, специалисты по данным прибегают к различным методам идентификации дубликатов (например, точному сопоставлению, нечеткому сопоставлению, хешированию или связыванию записей). После идентификации их можно либо удалить, либо объединить. Однако в несбалансированных наборах данных дубликаты на самом деле могут приветствоваться для достижения нормального распределения.
Обработка нерелевантных данных
Нерелевантные данные относятся к данным, которые не являются полезными или неприменимыми для решения проблемы. Обработка нерелевантных данных может помочь уменьшить шум и повысить точность прогнозов. Для выявления нерелевантных данных группы данных могут прибегать к таким методам, как анализ основных компонентов, корреляционный анализ или просто полагаться на свои знания в предметной области. После идентификации такие точки данных удаляются из соответствующего набора данных.
Обработка неверных данных
Подготовка данных для машинного обучения также должна включать обработку некорректных и ошибочных данных. Общие методы работы с такими данными включают преобразование данных (изменение данных таким образом, чтобы они соответствовали установленным критериям) или полное удаление неверных точек данных.
Обработка несбалансированных данных
Несбалансированный набор данных — это набор данных, в котором количество точек данных в одном классе значительно меньше, чем количество точек данных в другом классе. Это может привести к предвзятой модели, которая отдает приоритет классу большинства, игнорируя класс меньшинства. Чтобы решить эту проблему, группы данных могут прибегнуть к таким методам, как повторная выборка (либо передискретизация класса меньшинства, либо недостаточная выборка класса большинства, чтобы сбалансировать распределение данных), создание синтетических данных (синтетическое создание дополнительных точек данных для класса меньшинства), стоимость -чувствительное обучение (присваивание более высокого веса классу меньшинства во время обучения) и ансамблевое обучение (объединение нескольких моделей, обученных на разных подмножествах данных с использованием разных алгоритмов).
Эти действия помогают обеспечить точность, полноту и согласованность обучающих данных. Хотя это большое достижение, этого пока недостаточно для создания надежной модели машинного обучения. Итак, следующий шаг на пути подготовки данных для машинного обучения заключается в том, чтобы убедиться, что точки данных в наборе обучающих данных соответствуют определенным правилам и стандартам. И этот этап процесса управления данными называется преобразованием данных.
Преобразование данных
На этапе преобразования данных вы конвертируете необработанные данные в формат, подходящий для алгоритмов ML. Это, в свою очередь, обеспечивает более высокую алгоритмическую производительность и точность.
Наши специалисты по подготовке данных для машинного обучения называют следующие распространенные приемы преобразования данных.
Масштабирование
В наборе данных разные функции могут использовать разные единицы измерения. Например, набор данных о недвижимости может включать информацию о количестве комнат в каждом объекте (от одной до десяти) и цене (от 50 000 до 1 000 000 долларов США). Без масштабирования сложно сбалансировать важность обеих функций. Алгоритм может придавать слишком большое значение признаку с большими значениями — в данном случае цене — и недостаточно важному признаку с, казалось бы, меньшими значениями. Масштабирование помогает решить эту проблему, преобразуя все точки данных таким образом, чтобы они соответствовали заданному диапазону, обычно от 0 до 1. Теперь вы можете одинаково сравнивать разные переменные.
Нормализация
Другой метод, используемый при подготовке данных для машинного обучения, — это нормализация. Это похоже на масштабирование. Однако в то время как масштабирование изменяет диапазон набора данных, нормализация изменяет его распределение.
Кодирование
Категориальные данные имеют ограниченное количество значений, например цвета, модели автомобилей или виды животных. Поскольку алгоритмы машинного обучения обычно работают с числовыми данными, категориальные данные должны быть закодированы, чтобы их можно было использовать в качестве входных данных. Таким образом, кодирование означает преобразование категориальных данных в числовой формат. Существует несколько методов кодирования на выбор, включая однократное кодирование, порядковое кодирование и кодирование меток.
Дискретность
Дискретизация — это подход к подготовке данных для машинного обучения, позволяющий преобразовывать непрерывные переменные, такие как время, температура или вес, в дискретные. Рассмотрим набор данных, содержащий информацию о росте людей. Рост каждого человека можно измерить как непрерывную переменную в футах или сантиметрах. Однако для некоторых алгоритмов ML может потребоваться дискретизация этих данных по категориям, таким как «короткий», «средний» и «высокий». Это именно то, что делает дискретизация. Это помогает упростить набор обучающих данных и снизить сложность проблемы. Общие подходы к дискретизации охватывают дискретизацию на основе кластеризации и дерева решений.
Уменьшение размерности
Уменьшение размерности означает ограничение количества признаков или переменных в наборе данных и сохранение только информации, необходимой для решения проблемы. Рассмотрим, например, набор данных, содержащий информацию об истории покупок клиентов. В нем указаны даты покупки, купленные товары, цены на товары и место, где были совершены покупки. Уменьшая размерность этого набора данных, мы опускаем все характеристики, кроме самых важных, например, купленный товар и его цену. Уменьшение размерности может быть выполнено с помощью различных методов, некоторые из которых представляют собой анализ главных компонентов, линейный дискриминантный анализ и t-распределенное стохастическое встраивание соседей.
Преобразование журнала
Другой способ подготовки данных для машинного обучения, логарифмическое преобразование, относится к применению логарифмической функции к значениям переменной в наборе данных. Он часто используется, когда обучающие данные сильно искажены или имеют большой диапазон значений. Применение логарифмической функции может помочь сделать распределение данных более симметричным.
Говоря о преобразовании данных, мы должны также упомянуть об инженерии признаков. Хотя это форма преобразования данных, проектирование признаков — это больше, чем метод или шаг в процессе подготовки данных для машинного обучения. Это означает выбор, преобразование и создание объектов в наборе данных. Разработка признаков включает в себя сочетание статистических, математических и вычислительных методов, включая использование моделей машинного обучения, для создания признаков, которые фиксируют наиболее важную информацию в данных.
Обычно это повторяющийся процесс, который требует тестирования и оценки различных методов и комбинаций функций, чтобы найти наилучший подход к решению проблемы.
Разделение данных
Следующий шаг в процессе подготовки данных для машинного обучения включает в себя разделение всех собранных данных на подмножества — процесс, известный как разделение данных. Как правило, данные разбиваются на наборы данных для обучения, проверки и тестирования.
- Набор обучающих данных используется для обучения модели машинного обучения распознаванию закономерностей и взаимосвязей между входными и целевыми переменными. Этот набор данных обычно самый большой.
- Набор данных проверки — это подмножество данных, которое используется для оценки производительности модели во время обучения. Это помогает точно настроить модель, регулируя гиперпараметры (подумайте: параметры процесса обучения, которые задаются вручную перед тренировкой, такие как скорость обучения, сила регуляризации или количество скрытых слоев). Набор данных проверки также помогает предотвратить переоснащение обучающих данных.
- Набор данных для тестирования — это подмножество данных, которое используется для оценки производительности обученной модели. Его цель — оценить точность модели на новых, невидимых данных. Набор данных для тестирования используется только один раз — после того, как модель была обучена и настроена на наборах данных для обучения и проверки.
Разделив данные, мы можем оценить, насколько хорошо модель машинного обучения работает с данными, которых она раньше не видела. Без разделения есть вероятность, что модель будет плохо работать с новыми данными. Это может произойти из-за того, что модель могла просто запомнить точки данных вместо того, чтобы изучать шаблоны и обобщать их на новые данные.
Существует несколько подходов к разбиению данных, и выбор оптимального зависит от решаемой задачи и свойств набора данных. Наши эксперты по подготовке данных для машинного обучения говорят, что от группы обработки данных часто требуется экспериментировать, чтобы определить наиболее эффективную стратегию разделения. Ниже приведены наиболее распространенные стратегии.
- Случайная выборка: при этой стратегии данные разбиваются случайным образом. Этот подход часто применяется к большим наборам данных, репрезентативным для моделируемой совокупности. В качестве альтернативы он используется, когда в наборе данных нет известных взаимосвязей, что может потребовать более специализированного подхода.
- Стратифицированная выборка: в этой стратегии данные делятся на подмножества на основе меток классов или других характеристик, после чего производится случайная выборка этих подмножеств. Эта стратегия применяется к несбалансированным наборам данных, когда количество значений в одном классе значительно превышает количество значений в других. В этом случае стратифицированная выборка помогает убедиться, что наборы данных для обучения и тестирования имеют одинаковое распределение значений для каждого класса.
- Выборка на основе времени: эта стратегия используется, когда данные, собранные до определенного момента времени, составляют обучающий набор данных, а данные, собранные после заданной точки, формируются в тестовый набор данных. Этот подход используется, когда данные собирались в течение длительного периода времени, например, в финансовых или медицинских наборах данных, поскольку он позволяет гарантировать, что модель может делать точные прогнозы будущих данных.
- Перекрестная проверка: в этой стратегии данные делятся на несколько подмножеств или сгибов. Некоторые складки используются для обучения модели, а остальные используются для оценки производительности. Процесс повторяется несколько раз, при этом каждая складка служит тестовыми данными хотя бы один раз. Существует несколько методов перекрестной проверки, например перекрестная проверка в k-кратном порядке и перекрестная проверка с исключением одного. Перекрестная проверка обычно обеспечивает более точную оценку производительности модели, чем оценка на одном наборе тестовых данных.
В заключение
Правильная подготовка данных для машинного обучения необходима для разработки точных и надежных решений для машинного обучения. В ITRex мы понимаем проблемы подготовки данных и важность наличия качественного набора данных для успешного процесса машинного обучения.
Если вы хотите максимально использовать потенциал ваших данных с помощью машинного обучения, свяжитесь с командой ITRex. Наши специалисты окажут помощь в сборе, очистке и преобразовании ваших данных.
Эта статья была первоначально опубликована на сайте itrex.