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