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

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

Давайте построим нашу модель, используя кластеризацию k-средних.

  1. Импорт библиотек

Нам нужно импортировать все необходимые библиотеки

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

Недостаточно получить набор данных. Мы должны провести исследовательский анализ данных.

3. Выполните исследовательский анализ данных

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

4. Построение модели

Пришло время сгруппировать данные. Здесь мы группируем наши данные с использованием k-средних.

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

Основываясь на методе локтя, мы могли бы выбрать k = 3 или 5. Давайте попробуем k = 5 и визуализируем кластеры.

На приведенном выше графике показано распределение 5 кластеров. Мы можем интерпретировать их так:

Кластер 1: Кластер 1 включает клиентов со средним годовым доходом и средними годовыми расходами.

Кластер 2: Кластер 2 включает клиентов со средним и высоким годовым доходом и низкими годовыми расходами.

Кластер 3: Кластер 3 включает клиентов с низким годовым доходом и низкими годовыми расходами.

Кластер 4: Кластер 4 включает клиентов с низким годовым доходом и высокими годовыми расходами.

Кластер 5: Кластер 5 включает клиентов со средним и высоким годовым доходом и высокими годовыми расходами.

5. Развертывание модели с использованием Flask

Теперь наша простая модель k-средних готова. Преобразуйте объектную модель Python в символьную строку с помощью модуля pickle. Любой объект в Python можно мариновать, чтобы его можно было сохранить на диск.

Сохраните указанную выше модель как файл .pkl.

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

На данный момент мы разработали модель, то есть model.pkl, которая может прогнозировать поведение клиента на основе годового дохода и оценки расходов.

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

HTML-форма. Чтобы собрать информацию о новом клиенте, мы создаем HTML-форму.

<html> 
<body> 
    <h3>Customer Segmentation</h3> 
  
<div> 
  <form action="/result" method="POST"> 
    <label for="Annual Income">Annual Income</label> 
    <input type="text" id="Annual Income" name="Annual Income"> 
    <br>
    <label for="Spending Score (1-100)">Spending Score (1-100)</label> 
    <input type="text" id="Spending Score (1-100)" name="Spending Score (1-100)"> 
    <br>       
    <input type="submit" value="Submit"> 
  </form> 
</div> 
</body> 
</html>

Выход:

Создайте следующий файл result.html

<!doctype html>
<html>
<body>
<h1> {{ prediction }}</h1>
</body>
</html>

Здесь мы должны создать папку templates внутри каталога приложения и сохранить файлы HTML в папке шаблонов.

Теперь установите колбу с помощью - pip install flask

Скрипт Flask: Ниже приведен код фляги для создания очень простого веб-сервера.

  1. Перенаправление API для сбора данных

Нам нужно импортировать модуль flask для создания веб-приложения на Python. Нам нужно передать __name__ в качестве аргумента в конструктор фляги. Функция route () определяет отображение URL связанной функции. Как мы видим здесь, URL «/ index» привязан к функции index (), которая отвечает за прием данных от пользователя. Функция render_template (), используемая для визуализации внешнего файла HTML.

2. Перенаправление API для прогнозирования поведения клиентов.

Здесь мы определяем функцию для прогнозирования значений. Мы загружаем файл model.pkl, а затем используем модель для прогнозирования значений. URL-адрес / result привязан к функции result (), которая отвечает за возврат предсказанных значений. Запрос POST считывает входные значения из request.form.values ​​().

3. Запускаем флеш-сервер.

Метод запуска колбы используется для запуска приложения колбы на локальном сервере разработки. Теперь откройте http://127.0.0.1:5000/index в своем браузере. Вы должны просмотреть следующую домашнюю страницу.

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

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

Вот ссылка на код на GitHub: https://github.com/aishwaryarajendragulve/Model-Deployment-using-Flask-for-Beginners/tree/master

Ссылка на предыдущую статью: https://medium.com/@aishwaryagulve97/implementation-of-stochastic-gradient-descent-1d36b6a0c013



Https://medium.com/@aishwaryagulve97/normal-least-square-ols-method-for-linear-regression-ef8ca10aadfc