Развертывание обученных моделей машинного обучения на Python непосредственно в таблице с помощью библиотеки TabPy

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

Большинство специалистов по обработке данных / аналитиков используют таблицы для создания потрясающих визуализаций с доступными данными для презентаций. Однако для любого специалиста по данным, представляющего обученные модели машин конечным пользователям в привлекательной форме, так же важно, как и представление исследовательского анализа данных. Предположим, есть способ напрямую визуализировать обученные модели машин в Tableau, который делает этот процесс намного более комфортным. Развернуть обученное машинное обучение из Jupyter Notebook в Tableau проще, чем вы думаете. Вот где может быть полезен TabPy. В этой статье обсуждается процесс развертывания моделей машинного обучения с использованием Jupyter notebook и TabPy.

Данные

Набор данных этого проекта поддерживается прозрачно с лицензией Creative Commons 4.0 Фернандо Силва через репозиторий данных Mendeley. Набор данных состоит из примерно 180 тыс. Транзакций из цепочек поставок, используемых компанией DataCo Global в течение трех лет. Набор данных можно скачать здесь, так как это компания цепочки поставок. Обеспечение своевременной доставки заказов и предотвращение мошенничества имеет важное значение.

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

Очистка данных и моделирование

Набор данных состоит из 52 переменных. Все ненужные переменные отбрасываются, а планировщики удаляются. Из оставшихся 40 переменных оптимальные переменные для прогнозирования мошенничества и поздних поставок выбираются с помощью прямого выбора. Оптимальные переменные для прогнозирования поздних поставок - это страна заказа и дни отгрузки, запланированные для заказа. А для прогнозирования мошенничества оптимальными переменными являются реальные дни, необходимые для отправки заказа, и дни доставки, запланированные вместе со страной заказа. Общие оптимальные переменные выбраны для упрощения построения приборной панели.

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

Развертывание моделей в Tableau

На устройстве должны быть установлены Python 3 и Anaconda. Если они у вас не установлены, вы можете бесплатно установить их прямо с их веб-сайтов Anaconda и Python. Чтобы связать среду python с Tableau, есть отличная библиотека под названием Tabpy, которую нам нужно сначала установить. TabPy работает в среде anaconda и очень прост в установке. Чтобы установить TabPy, откройте командную строку и выполните следующую команду pip install tabpy

После установки tabpy. Нам также нужна дополнительная библиотека tabpy_client для подключения среды записной книжки Jupyter к tableau и прямого развертывания моделей машинного обучения. Даже эту библиотеку можно установить, как указано выше, с помощью следующей команды pip install tabpy_client

После успешной установки tabpy вы можете запустить среду tabpy, запустив tabpy

После запуска вы должны увидеть сообщение о том, что сервер tabpy успешно запущен, а для порта установлено значение «9004», что-то вроде изображения, показанного ниже.

Если у вас возникли проблемы с установкой TabPy, дополнительную информацию можно найти на странице TabPy GitHub.

Подключение сервера TabPy к Tableau

После успешной установки библиотеки TabPy вы можете легко подключить сервер tabpy к Tableau в настройках приложения Tableau. Справка ›Настройки и производительность› Управление подключением расширения Analytics в Tableau Desktop. Выберите локальный хост на сервере и введите номер порта.

Нажмите «Проверить соединение», чтобы проверить, успешно ли установлено соединение с вашим сервером. Если соединение прошло успешно. Затем вы можете начать развертывание моделей машинного обучения прямо в Tableau.

  1. Чтобы развернуть модели в таблице, начните с подключения записной книжки к серверу Tableau с помощью tabpy_client.
  2. Отдельные функции должны быть определены в формате, подходящем для Tableau. Новые переменные как _arg1, _arg2 объявляются с учетом количества переменных в обученной модели машинного обучения.
  3. Предположим, что любая из переменных, которые мы используем на панели управления, находится в строке. Их следует преобразовать в числовой формат.

Если при развертывании моделей возникают ошибки, проверьте, все ли библиотеки обновлены. Использование «override = True» в операторе развертывания заменит уже обученную модель новой моделью. Это может быть полезно, если вы хотите снова обучить существующую модель с новыми данными.

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

  1. Загрузите данные в Tableau, импортировав файл CSV.
  2. Затем следует создать новые параметры с теми же именами, которые используются в коде для развертывания модели. Параметры могут иметь строковый или числовой формат в зависимости от вашей модели. Если вы используете строки, убедитесь, что написан код для преобразования строки в числовой формат.
  3. Наконец, создайте новое вычисляемое поле с помощью следующего скрипта и передайте параметры для подключения к серверу TabPy.

Выберите SCRIPT_REAL или SCRIPT_STR в зависимости от вашего вывода. Если после входа в сценарий вы видите «Расчет действителен», нажмите «Применить», и все готово. Модели машинного обучения готовы к использованию, и теперь вы можете с легкостью создавать интерактивные визуализации, используя созданные нами параметры и поле расчета.

Данные и код можно найти в моем репозитории Github.

Надеюсь, это будет полезно! Большое вам спасибо за то, что дочитали это до сих пор. Ты восхитителен! Если у вас есть какие-либо вопросы относительно этой статьи или вы хотите пообщаться и пообщаться, не стесняйтесь направить мне сообщение в LinkedIn. Я буду более чем счастлив связаться с вами и помочь чем смогу.

Исправление ошибки

Некоторые люди связались со мной в Linkedin и сообщали, что иногда они получают сообщение «RuntimeError: LoadFailed:« Ошибка загрузки: неподдерживаемый протокол рассола: 5 ». Я предполагаю, что это произойдет, если вы попытаетесь дважды развернуть одну и ту же модель ML, быстрое исправление этой ошибки - это либо удаление уже сохраненной модели рассола с вашего компьютера, либо повторное развертывание модели с новым именем в Jupyter notebook и Tableau.