Это первая из серии статей о том, как использовать Машинное обучение (ML) в приложениях для автоматизации цифровых процессов и интеграции в Oracle Integration Cloud. В этой серии статей мы используем сочетание Oracle Cloud Services и шаг за шагом реализуем пару сценариев использования. Первая статья (эта) посвящена настройке среды машинного обучения и реализации модели машинного обучения для нашего первого варианта использования.

Пример использования

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

  • Утвердить прием на работу сотрудника в процессе адаптации сотрудников
  • Подтвердить закупку оборудования в процессе Закупки
  • Утвердить командировочные расходы в процессе управления командировками
  • и т. д. и т. д.

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

  • Заказы от клиентов поступают от торговых представителей компании.
  • Заказы содержат, среди прочего, следующую релевантную информацию
    - Сумма заказа
    - Квартал, когда заказ был создан (1, 2, 3, 4)
    - Статус клиента (зеленый, желтый, красный)
    - Запрошенная покупателем скидка (0–99%)
  • В зависимости от информации о заказе мы хотим предсказать, должен ли заказ быть одобрен вице-президентом по продажам в данном квартале.

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

В этой статье мы продемонстрируем, как настроить среду машинного обучения (ML) с помощью Oracle Autonomous Data Warehouse и реализовать модель машинного обучения для нашего варианта использования.

Автономное хранилище данных Oracle

Oracle Autonomous Data Warehouse (ADW) - это собственная служба Oracle Cloud Infrastructure. Это полностью управляемая облачная служба с возможностями машинного обучения и искусственного интеллекта, которая позволяет очень просто подготовить хранилище данных, быстро и легко загружать данные и запрашивать эти данные с помощью встроенных веб-инструментов, таких как записные книжки. Блокноты машинного обучения на базе Apache Zeppelin вместе с Oracle Advanced Analytics предлагают комплексный набор инструментов машинного обучения для Data Scientist, позволяющий загружать и визуализировать данные, обучать и тестировать модели машинного обучения и документировать варианты использования машинного обучения с использованием простого языка разметки.

Первоначальная настройка пользователя

Информацию о настройке и администрировании ADW см. В Приложении к этой статье. Рекомендуется настраивать пользователей в ADW. Пользователь в ADW отличается от пользователя OCI в том смысле, что пользователь ADW на самом деле является пользователем базы данных, владеющим схемой в ADW. После создания пользователя в ADW он может захотеть запустить несколько установочных сценариев SQL. Они требуются в системе только один раз, а затем могут использоваться в каждом блокноте или сценарии SQL. См. Создание учетной записи пользователя в Oracle Machine Learning о том, как создавать пользователей в ADW. Чтобы создать сценарий SQL в ADW, войдите в систему со своим пользователем и паролем, а затем откройте Запуск сценариев SQL с домашней страницы пользователя.

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

Создать учетные данные

Поскольку позже мы будем работать с Oracle Cloud Storage для загрузки данных из облачного хранилища в ADW, нам необходимо настроить учетные данные пользователя в ADW для подключения к облачному хранилищу с помощью процедур пакета ADW DBMS_CLOUD. Для этого откройте сценарий SQL в ADW и выполните следующие действия.

Подробнее см. Процедуру DBMS_CLOUD.CREATE_CREDENTIAL и Работа с токенами аутентификации.

Создать процедуру для записи BLOB в DATA_PUMP_DIR

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

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

Теперь мы готовы реализовать вариант использования с помощью записной книжки машинного обучения в ADW. Для этого перейдите на домашнюю страницу и нажмите «Блокноты», затем нажмите «Создать».

Это откроет новую пустую записную книжку ML, которая выглядит следующим образом:

Использование ноутбука ML

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

  • % md
    Это язык разметки, который можно использовать для документирования записной книжки машинного обучения. Ссылки в уценке можно использовать для ссылки на внешние ресурсы.
  • % script
    Это для сценариев SQL на языке PL / SQL. В более поздней версии ADW будет добавлена ​​поддержка Python.
  • % sql
    Используется для запросов SQL, а также позволяет визуализировать набор результатов в различных формах диаграмм и т. д.

Тип реализации следует указывать в первой строке каждого абзаца. Абзацы могут быть выполнены индивидуально. Кроме того, может быть выполнена вся записная книжка ML. Для этого на блокноте и в каждом абзаце есть небольшая кнопка Воспроизвести. Дополнительные сведения о записных книжках машинного обучения и их использовании см. В разделе Использование машинного обучения Oracle. Также было бы полезно прочитать о записных книжках Apache Zeppelin в целом, чтобы лучше понять их использование и передовой опыт.

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

1. Документация

Хорошей практикой является документирование вашего варианта использования, для этого мы начинаем записную книжку ML с абзаца с уценкой (% md).

2. Очистка

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

3. Создание объектов базы данных

После очистки мы собираемся создать необходимые объекты в базе данных ADW.

4. Загрузить данные из облачного хранилища.

Затем мы собираемся загрузить данные из облачного хранилища в таблицу SALES_DATA. Эта таблица содержит обучающий набор, на котором мы обучаем модель машинного обучения позже. ADW предлагает различные варианты загрузки данных в базу данных ADW, подробности см. В разделе Загрузка данных с помощью автономного хранилища данных. В нашем случае данные доступны в виде файла .CSV в облачном хранилище, и мы можем загрузить их в базу данных с помощью процедуры DBMS_CLOUD.COPY_DATA

Вот файл sales_data_export.csv в Cloud Object Storage.

5. Разделение данных

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

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

Это может быть удобно достигнуто в SQL, создав два представления поверх таблицы SALES_DATA, одно для обучающих данных, а другое для тестовых данных.

Предупреждение: хотя приведенный выше SQL довольно удобен и выразителен, эту методологию разделения не следует использовать для больших обучающих наборов, поскольку операция SQL MINUS на самом деле неэффективна. Вместо этого следует использовать case id в сочетании с функцией ora_hash для разделения набора данных.

6. Подготовьте настройки для алгоритма GLM.

В этом случае мы собираемся использовать алгоритм машинного обучения Generalized Linear Model (GLM) ML, который является алгоритмом для моделей Classification. Чтобы использовать GLM в ADW, нам нужно параметризовать настройки алгоритма. Автоматическая подготовка данных включена по умолчанию и не требует явной настройки. Это просто показано ниже для полноты картины.

7. Показать данные

Теперь мы готовы обучить модель машинного обучения для данных, хранящихся в таблице SALES_DATA, с использованием алгоритма GLM для классификации. Прежде чем мы это сделаем, мы запрашиваем таблицу SALES_DATA и показываем графику. Для этого мы можем создать новый абзац и выбрать% sql как реализацию, а затем добавить следующий SQL в абзац

%sql
select CustomerStatus, Quarter, OrderAmount from sales_data_train

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

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

8. Обучите модель машинного обучения.

Пришло время обучить модель машинного обучения на основе данных в представлении SALES_DATA_TRAIN.

Вероятно, это требует немного большего объяснения. Для получения полной информации см. Документацию DBMS_DATA_MINING.CREATE_MODEL и Руководство пользователя интеллектуального анализа данных Oracle Advance Analytics.

  • Создаем модель с именем SALES_CLASSIFICATION_GLM_V2
  • Функция майнинга для этой модели - КЛАССИФИКАЦИЯ.
  • Данные для обучения хранятся в представлении SALES_DATA_TRAIN.
  • Целевой столбец (атрибут, который мы хотим спрогнозировать позже) - УТВЕРЖДЕНИЕ.
  • Настройки алгоритма хранятся в таблице GLM_SETTINGS.

9. Показать результаты прогнозов.

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

Создайте новый абзац в записной книжке ML со следующими

%sql
select prediction(SALES_CLASSIFICATION_GLM_V2 USING *) pr,
       Quarter,
       OrderAmount
  from sales_data_test
  order by pr ;

который может показывать что-то вроде этого

Как почему-то и ожидалось, большинство прогнозов - «да» для атрибута УТВЕРЖДЕНИЕ, и лишь часть из них - «нет». В реальном сценарии можно было бы построить намного больше моделей классификации, используя разные алгоритмы, а затем сравнить результат каждого алгоритма, а затем выбрать лучший алгоритм для варианта использования. Однако это выходило бы далеко за рамки цели данной серии и могло бы стать отдельной серией.

ADW предлагает множество методов и алгоритмов машинного обучения для следующих

  • Классификация
  • Регресс
  • Обнаружение аномалий
  • Кластеризация
  • Ассоциация
  • Временная последовательность
  • Выбор функций и регрессия

Полный набор алгоритмов см. В разделе Алгоритмы.

10. Запишите модель ML в каталог.

Теперь, когда мы создали модель машинного обучения для варианта использования, мы можем записать ее сериализованную версию в виде большого двоичного объекта в каталог в ADW. В этом абзаце будет использоваться процедура write_serialized_model, которую мы создали изначально при настройке пользователя. Эту процедуру можно использовать в других записных книжках машинного обучения, поэтому мы не создавали ее здесь, а как часть настройки среды записной книжки машинного обучения Data Scientist.

11. Перенос модели машинного обучения в облачное хранилище объектов.

В качестве последнего шага этой записной книжки машинного обучения мы собираемся перенести сериализованную версию модели машинного обучения из каталога DATA_PUMP_DIR ADW в облачное хранилище объектов. Для этого мы используем процедуру DBMS_CLOUD.PUT_OBJECT.

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

Приложение: Администрирование автономного хранилища данных

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

Подключения к БД ADW и сервисная консоль

ADW предлагает определенные функции администрирования, к которым можно получить доступ из консоли OCI Autonomous Data Warehouse. Для этого администратор ADW может захотеть выбрать соответствующий экземпляр ADW из консоли OCI, как показано ниже.

Загрузка учетных данных клиента

Довольно удобно иметь доступным полный набор функций SQL * Developer для работы с базой данных ADW. В версии 18.1 и выше SQL * Developer позволяет создавать подключения к базе данных из файлов учетных данных клиента, также известных как кошелек. Чтобы загрузить учетные данные клиента для базы данных ADW, откройте страницу сведений об экземпляре ADW в консоли OCI и нажмите Подключение к базе данных

Откроется другое диалоговое окно, откуда вы можете скачать архив .zip.

Архив .zip содержит учетные данные клиента и необходимые ключи для подключения к базе данных ADW через JDBC через TLS. Этот архив можно использовать из SQL * Developer для создания подключения к базе данных.

Сервисная консоль

Консоль обслуживания показывает некоторую статистику времени выполнения экземпляра ADW с использованием ЦП, средним временем отклика оператора SQL и др.

Все административные задачи ADW доступны через меню Администрирование в Service Console.

Таким образом, консоль администрирования позволяет администратору ADW выполнять следующие операции.

  • Загрузить учетные данные клиента
    По сути, это то же самое, что вы можете сделать на странице сведений об экземпляре экземпляра ADW, и это описано выше.
  • Установить правила управления ресурсами
    Это позволяет вам установить ограничения вычислительных ресурсов для групп потребителей ADW HIGH, MEDIUM и LOW.
  • Установить пароль администратора
  • Управление пользователями Oracle ML
    Позволяет администратору ADW добавлять пользователей в автономное хранилище данных. Эти пользователи по сути являются пользователями базы данных (а не пользователями, управляемыми OCI Identity Management). Чтобы использовать возможности ADW в портативном машинном обучении, необходимо создать пользователя.
  • Загрузить мгновенный клиент Oracle
    Это приведет к перенаправлению на страницу Загрузка мгновенного клиента Oracle, откуда вы можете загрузить мгновенный клиент Oracle для выбранной платформы и операционной системы. Мгновенный клиент дает вам доступ к вашей базе данных ADW с помощью известных клиентских инструментов Oracle, таких как SQL * Plus, imp / exp и т. Д.
  • Отправить отзыв в Oracle

Благодарности

Эта серия статей является результатом более чем одного года сотрудничества с командой Oracle Machine Learning (OML). Поэтому я хотел бы поблагодарить Бориану Миленову и ее команду разработчиков за отличную поддержку, своевременную доставку и ценные разговоры о машинном обучении. Благодарим менеджера по продукту Чарли Бергера из @ OracleAnalytics за продвижение OML и Integration Cloud и возможность представить эту работу в различных случаях. И наконец, не в последнюю очередь спасибо Суману Ганте из команды среды выполнения процессов и команде пользовательского интерфейса Integration Cloud за включение OML в Integration Cloud.