Я новичок в ML (Ну, это правда). Я пишу все, как я учусь. Если я смогу объяснить, это будет здорово! Я много узнал о жизненном цикле машинного обучения, и внезапно мне в голову пришла случайная мысль: «Эй, а как насчет того, чтобы написать то, что я считаю жизненным циклом машинного обучения, и позволить другим людям прочитать и отреагировать?». Итак, поехали!

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

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

Этапы жизненного цикла машинного обучения

  1. Определить постановку проблемы
  2. Сбор данных
  3. Подготовка данных
  4. Анализ данных
  5. Выбор модели и обучение
  6. Тестирование модели
  7. Развертывание

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

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

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

Теперь давайте углубимся в каждый шаг.

Определить формулировку проблемы

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

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

Сбор данных

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

Предположим, вы работаете над проблемой ML, когда вам нужно получить данные из Интернета, вам может потребоваться выполнить веб-скраппинг для сбора данных. Если вы работаете над проблемой, заданной какой-то «традиционной отраслью», вам необходимо получить данные с датчиков или другими методами (не волнуйтесь, эти шаги очень редки). Эти данные могут быть использованы вами в дальнейшем.

Подготовка данных

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

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

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

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

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

Анализ данных

Это снова очень важный шаг. После предварительной обработки данных в требуемом формате вы можете захотеть визуализировать их и сделать из них определенные предположения. Для этого шага вам потребуется хорошая команда для построения и понимания диаграмм и графиков (вы можете сделать это с помощью Python или Excel или любого другого инструмента по вашему выбору). Это помогает выбрать хорошие алгоритмы для конкретного набора данных и постановки задачи.

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

Выбор модели и обучение

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

Обычно мы используем k-кратную перекрестную проверку для тестирования. Все комбинации алгоритмов и данных проверяются k раз, и мы получаем среднее и стандартное отклонение для всех (если вы не знакомы с понятием среднего и стандартного отклонения, это очень основные понятия статистики, и мы обсудим все это в статистике для ML). ).

В k-кратной перекрестной проверке мы берем несколько алгоритмов ML (это несколько часто используемых алгоритмов, скажем, стандартные алгоритмы ML) и запускаем их в наборе данных. Это несколько основных алгоритмов из разных семейств (вы можете прочитать этот блог Джейсона Браунли, доктора философии).

Здесь вы сначала решаете свой подход, т. Е. Хотите ли вы использовать контролируемый, неконтролируемый или полуконтролируемый подход. Как только вы решите это, вам нужно решить, какой конкретный алгоритм вы хотите использовать (иногда мы также используем гибридные подходы). Мы отбрасываем другие методы и сужаем наш список алгоритмов и продолжаем выполнять этот шаг в итеративном методе, пока не найдем идеальный алгоритм (под идеальным я имею в виду, что мы получаем четкое представление, не обязательно лучшее).

После выбора алгоритма мы обучаем нашу модель с нашим набором данных. В основном мы делим наш набор данных на две части: одну для обучения, а другую для тестирования. Вы можете выбрать пропорцию 70:30 или 80:20 или любую другую пропорцию, которую вы хотите выбрать для постановки задачи.

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

Тестирование модели

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

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

Развертывание

Развертывание модели не обязательно должно выполняться инженером по машинному обучению. Это субъективно для вашего рабочего профиля, но полезно изучить хотя бы основы. Вам нужно когда-нибудь объяснить клиенту свои выводы, потому что есть вероятность, что ваш клиент может быть не очень осведомлен об ML и хочет получить результаты простыми, понятными терминами или способом. Вам может потребоваться создать информационные панели или развернуть свою модель в облаке или веб-приложении, если вы работаете в качестве независимого инженера по машинному обучению (в компаниях в основном есть люди для этого, но для этого могут потребоваться внештатные инженеры по машинному обучению).

Сводка

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

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

На сегодня все, увидимся в следующем посте!