Введение

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

За последние несколько месяцев мы построили временные ряды и модели классификации на основе реальных наборов данных. Теперь мы собираемся встроить эти модели в веб-приложения, используя Streamlit и Gradio.

Зачем встраивать

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

Фреймворки

В этой статье используются две среды Python: Streamlit и Gradio. Это простые в использовании фреймворки Python для развертывания проектов по науке о данных.

Модели

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

Встраивание модели временных рядов в Streamlit.

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

Получение входных данных

Затем мы разрабатываем базовый интерфейс для ввода данных от пользователей с помощью встроенных функций потоковой передачи, таких как st.number (для ввода числовых значений) и st.text (для ввода текстовых данных). Входные данные — это процесс на бэкэнде, который проверяет, соответствуют ли они требованиям алгоритма.

Загрузите файл рассолов машинного обучения и передайте его в переменную

Затем мы загружаем нашу модель машинного обучения с помощью Pickle. Это делает его доступным для использования в прогнозах.

Передавайте входные данные в модель и делайте прогнозы

После загрузки модели мл мы передаем пользовательские данные в модель, применяя метод прогнозирования.

Верните прогноз в пользовательский интерфейс

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

Добавить график (временной ряд)

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

Добавить кнопку загрузки

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

Встраивание модели логистической регрессии в Gradio

Создание приложений с встраиванием моделей мл в Gradio немного отличается, но просто.

Импортируйте модель

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

Создайте функцию прогнозирования

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

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

Создайте пользовательский интерфейс

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

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

Как только функция вернет прогнозируемый вывод, верните его в пользовательский интерфейс.

Заключение

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

Рекомендации



Градио

Признательность

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

Что дальше

В следующей статье мы поговорим об анализе настроений с использованием предварительно обученных моделей объятий.