Дорожная карта для вашего идеального проекта машинного обучения

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

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

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

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

Получить данные

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

Изучите данные

Создайте копию данных для исследования, если данные слишком велики, вы можете выбрать их до управляемого размера. Изучите каждый атрибут и его характеристики, такие как имя, тип (категориальный, int / float, текст, упорядоченный / неупорядоченный и т. Д.), Количество отсутствующих значений, шумность и тип шума (выбросы, ошибки округления и т. Д.), Тип распределения. (Гауссовский, равномерный, логарифмический и т. Д.). Если вы участвуете в контролируемой задаче, определите целевую (ые) переменную (ы). Визуализируйте данные и изучите корреляции между атрибутами.

Очистите ваши данные

Всегда предпочитайте писать функции для всех преобразований данных, которые вы применяете, чтобы можно было легко использовать ту же функцию для подготовки данных, а также для очистки набора тестов. Заполните недостающие значения и обработайте выбросы. Если есть какие-либо атрибуты, которые не предоставляют полезной информации, отбросьте эти переменные. Добавьте многообещающие преобразования функций (например, log (x), sqrt (x), x² и т. Д.). Наконец, масштабируйте свои функции: стандартизируйте или нормализуйте.

Подготовьте свою модель

Если данные слишком велики, вы можете выбрать меньшие обучающие наборы, чтобы вы могли обучать множество различных моделей. Обучите множество быстрых моделей из разных категорий (например, линейные, наивные байесовские модели, SVM, случайные леса, нейронные сети и т. Д.), Используя стандартные параметры, и сравните их производительность. Проанализируйте наиболее значимые переменные для каждого алгоритма. Проанализируйте тип ошибок, которые делает модель, что бы использовал человек, чтобы избежать этих ошибок?

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

Тонкая настройка системы

Относитесь к вариантам преобразования данных как к гиперпараметрам, особенно если вы не уверены в них (например, следует ли мне вменять отсутствующие значения нулем или медианой или отбрасывать их?). Если для изучения очень мало значений гиперпараметров, предпочитайте случайный поиск поиску по сетке.

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

Представляем ваше решение

Задокументируйте, что вы делали до сих пор. Создайте красивую презентацию. Постарайтесь объяснить, почему ваше решение достигает бизнес-цели. Убедитесь, что ваши ключевые выводы переданы с помощью красивой визуализации или легко запоминающихся утверждений.

Запуск !!

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