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

Этапы создания модели машинного обучения

Определите проблему

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

  1. Понимание бизнес-контекста: какую проблему вы пытаетесь решить и почему это важно? Как проблема вписывается в общие цели и задачи бизнеса или организации?
  2. Определение проблемы. Какую конкретную задачу машинного обучения вы пытаетесь решить? Это проблема классификации, проблема регрессии или что-то еще?
  3. Постановка целей: что вы хотите, чтобы ваша модель машинного обучения выполняла? Какие показатели вы будете использовать для измерения его производительности и к какому уровню производительности вы стремитесь?
  4. Выявление ограничений. Какие ресурсы и ограничения вам доступны, например данные, вычислительная мощность и время? Как эти ограничения повлияют на ваш подход к решению проблемы?

Собирайте и исследуйте данные

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

  1. Определение источников данных: где вы получите данные, необходимые для обучения и оценки вашей модели машинного обучения? Это могут быть внутренние источники, такие как базы данных или файлы журналов, или внешние источники, такие как общедоступные наборы данных или API.
  2. Доступ к данным и их загрузка: как вы будете получать доступ к нужным вам данным и загружать их? Это может включать в себя написание кода для извлечения данных из базы данных или API или ручную загрузку и сохранение файлов данных.
  3. Очистка и форматирование данных: когда у вас есть данные, вам нужно будет очистить и отформатировать их, чтобы подготовить их к анализу. Это может включать такие задачи, как удаление недопустимых или отсутствующих значений, исправление ошибок и стандартизация формата данных.
  4. Изучение данных. После того как данные очищены и отформатированы, вы можете приступить к их изучению, чтобы лучше понять их характеристики и любые шаблоны или тенденции, которые они могут содержать. Это может включать создание сводной статистики, создание визуализаций или применение статистических методов к данным.

Предварительно обработайте данные:

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

  1. Очистка данных. Очистка данных включает удаление неверных или отсутствующих значений, исправление ошибок и стандартизацию формата данных. Это важно, потому что недопустимые или отсутствующие значения могут вызвать проблемы во время обучения модели, а стандартизация данных может упростить работу и сравнение.
  2. Разработка признаков: разработка признаков включает в себя создание новых функций или преобразований данных, которые могут быть более актуальными или полезными для обучения модели. Например, вы можете создавать новые функции, комбинируя или агрегируя существующие функции или применяя к данным математические преобразования.
  3. Нормализация или масштабирование данных. Нормализация или масштабирование данных может помочь обеспечить одинаковый масштаб различных функций, что может быть важно для некоторых алгоритмов машинного обучения. Это можно сделать, преобразовав данные так, чтобы они имели среднее значение, равное 0, и стандартное отклонение, равное 1, или путем масштабирования данных, чтобы все признаки попадали в определенный диапазон.

Разделите данные:

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

  1. Учебный набор используется для обучения модели машинного обучения. Обычно он состоит из наибольшей части набора данных и используется для подгонки модели к данным.
  2. Набор проверки используется для оценки модели во время обучения. Он используется для настройки гиперпараметров модели или для выбора между различными моделями. Набор для проверки обычно меньше, чем набор для обучения, и используется для оценки производительности модели на невидимых данных.
  3. Тестовый набор используется для оценки окончательной модели. Он используется для оценки производительности модели на невидимых данных и обычно является наименьшим из трех наборов.
  4. Разделение данных таким образом позволяет вам оценить производительность модели на невидимых данных, что важно, потому что это может помочь вам понять, насколько хорошо модель будет обобщать новые, реальные данные. Это также позволяет настраивать гиперпараметры модели или выбирать лучшую модель на основе ее производительности в проверочном наборе, что может помочь улучшить производительность модели в тестовом наборе.

Выберите алгоритм машинного обучения

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

  1. Алгоритмы контролируемого обучения: эти алгоритмы используются, когда у вас есть помеченный набор данных, что означает, что данные включают как входные функции, так и соответствующую целевую метку. Примеры алгоритмов обучения с учителем включают линейную регрессию, логистическую регрессию и машины опорных векторов.
  2. Алгоритмы обучения без учителя: эти алгоритмы используются, когда у вас есть немаркированный набор данных, что означает, что данные включают только входные функции и не содержат соответствующих целевых меток. Примеры алгоритмов обучения без учителя включают алгоритмы кластеризации, такие как k-means и иерархическая кластеризация.
  3. Алгоритмы полууправляемого обучения: эти алгоритмы используются, когда у вас есть частично размеченный набор данных, что означает, что некоторые данные включают как входные функции, так и соответствующую целевую метку, а другие данные включают только входные функции. Алгоритмы полууправляемого обучения могут быть полезны, когда маркировка всех данных обходится дорого или требует много времени, но вы все же хотите использовать маркированные данные для повышения производительности модели.
  4. Алгоритмы обучения с подкреплением: эти алгоритмы используются, когда агент взаимодействует с окружающей средой и учится методом проб и ошибок. Алгоритмы обучения с подкреплением часто используются в задачах, связанных с принятием решений и контролем, таких как игра или управление роботом.

Обучите модель

Обучите модель с помощью обучающих данных.

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

Оценить модель

Оцените модель, используя данные проверки и тестирования, чтобы определить ее производительность.

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

Рассчитайте оценочные показатели, такие как точность, достоверность, полнота и оценка F1, чтобы понять производительность модели.

Точная настройка модели

Если производительность модели неудовлетворительна, выполните точную настройку модели, изменив ее гиперпараметры или выбрав другую модель.

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

Переобучите модель, используя обновленные гиперпараметры, и снова оцените модель, используя тестовые данные, чтобы определить ее производительность.

Разверните модель

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

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

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