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

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

Шаг 1: определение проблемы

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

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

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

Шаг 2: Стратегия оценки

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

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

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

Что касается показателей оценки, рекомендуется выбрать оба:

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

Шаг 3: базовая модель

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

Основная цель этих базовых моделей:

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

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

Шаг 4: проверка данных

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

Некоторые примеры, с которыми я столкнулся:

  • Некоторые из наших клиентов покупали сотни товаров каждый день - было несколько тестовых учетных записей, которые использовались для ежедневных тестов на содержание селена в производственной системе.
  • Большинство наших клиентов родились в 1999 году. Оказалось, что это жестко запрограммированная ценность, применяемая к каждому клиенту, если он не изменит свой профиль.

Удаление их из модели на очень раннем этапе просто очень помогает.

Шаг 5: построение модели

Именно здесь опыт Kaggle становится гораздо более актуальным. На этом этапе важно хорошо разбираться в выборе алгоритма машинного обучения, настройке параметров, проектировании функций, а также в наборе моделей - для дополнительного улучшения на x%, когда это применимо.