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

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

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

В каких сценариях вы получите новую версию?

1. Изменения данных

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

  • Когда вы собираете больше данных.
  • Когда вы нормализуете / стандартизируете данные.
  • При создании новых переменных - комбинации переменных, фиктивных переменных, трендов и т. Д.
  • Когда вы отбрасываете существующие переменные.
  • Когда вы заполняете недостающие данные или отбрасываете недостающие данные.
  • Или любым другим способом, при котором в данных происходят какие-то изменения.

2. Изменения модели

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

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

Зачем нужно отслеживать версии моделей?

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

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

Управление версиями модели

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

Название версии

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

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

  • Первая цифра говорит мне версию проекта. Если я работаю над этим впервые, я присвою x = 1.
  • Второй номер сообщает мне версию данных, которую я использовал для моделирования. Изначально я установил y = 1. В процессе моделирования нам может потребоваться изменить данные несколько раз. Каждый раз, когда я изменяю данные, я увеличиваю число y.
  • Третье число я использую для алгоритма моделирования. Для каждой версии данных я начинаю с 1. Например, для версии данных y для первого применяемого алгоритма я устанавливаю z = 1, для второго алгоритма z = 2 и т. Д.
  • Четвертое число, которое я использую для незначительных изменений в модели, например, при изменении гиперпараметров алгоритма дает разные результаты, поэтому в этом случае другое число для w.

Например, если я впервые работаю над проектом машинного обучения. Я создал одну версию данных моделирования и применил к этим данным алгоритм логистической регрессии. В этом случае мой полный номер версии будет 1.1.1.0. Теперь, если я изменю алгоритм на случайный лес для тех же данных, я назову свою версию 1.1.2.0. В случае, если я найду лучшую настройку параметров для случайного леса, я назову эту версию 1.1.2.1. Таким образом, я могу легко отслеживать свои модели.

Инструменты управления версиями

Вышеупомянутая система версий может быть реализована с использованием обычной файловой системы. Если ваши данные находятся в формате CSV, вы называете свой файл ‹filename› _ ‹version› .csv. Точно так же можно управлять файлами кода.

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

  • Git - для контроля версий кода.
  • Dvc - для контроля версий данных.

И git, и dvc - программное обеспечение с открытым исходным кодом. Для получения полной информации об использовании ознакомьтесь с их документацией. Примеры использования этого инструмента см. В следующих статьях -





Заключение

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

Подписывайтесь на меня на Quora. Я пишу ответы, связанные с наукой о данных и машинным обучением.