Создавайте потрясающие модели машинного обучения с помощью этих 4 советов

Вступление

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

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

Учитывая, что это была моя первая «серьезная» модель, у меня было наивное неправильное представление о том, как, по моему мнению, будет выглядеть мое путешествие по построению модели:

Хотя на самом деле мое путешествие выглядело скорее так:

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

С учетом сказанного, вот 4 концепции, о которых я хотел бы знать, прежде чем строить эту модель!

1. Развертывание модели с простым веб-интерфейсом

Что-то, с чем я недавно столкнулся, было Gradio, пакет Python, который позволяет вам создавать и развертывать веб-приложение для вашей модели машинного обучения всего за три строчки кода. Он служит той же цели, что и Streamlit или Flask, но я обнаружил, что развернуть модель намного быстрее и проще.

Почему это так полезно? Пара причин:

  1. Это позволяет провести дополнительную проверку модели. В частности, он позволяет вам в интерактивном режиме тестировать различные входные данные в модели. Это также позволяет вам получать отзывы от других заинтересованных сторон и экспертов в предметной области, особенно от некодеров.
  2. Это хороший способ проводить демонстрации. Лично я обнаружил, что демонстрация Jupyter Notebook некоторым заинтересованным сторонам не оправдывает мою модель, несмотря на то, что она работает очень хорошо. Использование подобной библиотеки позволяет легче сообщать о своих результатах и ​​лучше продавать себя.
  3. Его легко внедрить и распространить. Повторяю, требуется крошечная кривая обучения, поскольку для реализации этого требуется всего 3 строки кода. Кроме того, его действительно легко распространять, потому что веб-приложение доступно всем по общедоступной ссылке.

TL; DR. Воспользуйтесь преимуществами графического интерфейса модели машинного обучения, такого как Gradio, для лучшего тестирования и взаимодействия.

2. Важность функции

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

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

Довольно круто, правда? Бьюсь об заклад, вы начинаете понимать, почему это так полезно.

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

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

TL; DR: используйте важность функции, чтобы улучшить выбор функций, интерпретируемость модели и обмен информацией.

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

3. Настройка гиперпараметров

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

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

Примеры гиперпараметров:

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

Суть гиперпараметров в том, что, хотя они не определяются самими данными, установка правильных гиперпараметров может улучшить вашу модель машинного обучения с 80% точности до 95% +. Так было в моем случае.

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

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

TL; DR: такие методы, как поиск по сетке и случайный поиск, позволяют оптимизировать гиперпараметры модели, что может значительно улучшить ее производительность.

4. Метрики оценки модели

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

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

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

Таким образом, мы можем разбить этот пункт на два подпункта:

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

TL; DR: понимание бизнес-проблемы. Иметь четкое представление обо всех соответствующих показателях и понимать последствия выбора каждого показателя.

Спасибо за прочтение!

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

  • Улучшить производительность моей модели с ~ 85% точности до + 95%.
  • Легче передавать мою модель и идеи, особенно тем, кто не был технически подкован.
  • Получите больше отзывов от заинтересованных сторон.

Не знаете, что читать дальше? Я подобрала для вас другую статью:



и еще один!



Теренс Шин