Продолжая предыдущий пост, в этой статье основное внимание будет уделено приему данных в Hive, построению рабочего процесса машинного обучения Spark, оценке модели и записи модели в S3 и HDFS с помощью платформы Qubida.

Не позволяйте дождливым дням расстраивать вас.

Вдохновение для варианта использования исходит от нового страхового продукта Droplet от NTUC Income. Здесь, в Сингапуре, мы сталкиваемся с проблемой скачка цен (райдшеринга), особенно когда идет дождь. Цены на такси и райдшеринг в этот период непомерны (ИМХО).

Компания Droplet (www.droplet.sg) выпустила инновационный продукт, обеспечивающий страховку от скачков цен! Отличный пример того, почему ИИ является решающим фактором успеха и как компании используют машинное обучение для запуска новых бизнес-моделей или услуг.

Двигаясь дальше, мы рассмотрим, как создать решение, связанное со страхованием, с помощью набора данных Allstate Insurance на Kaggle[description].

Конвейер машинного обучения Spark и рабочие процессы Qubida

Конвейеры машинного обучения сложны.Кроме того, не хватает квалифицированных специалистов по данным и программистов, обученных Scala, Python, R, Spark, Java, C, C++, статистике, бизнес-домену. , Инфраструктура, DevOps (…… список можно продолжить) усложняют для менеджеров по корпоративным продуктам выпуск решений производственного уровня!!

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

Принимая во внимание, что рабочий процесс Qubida построен на Spark, давайте разберемся с компонентами Spark ML, участвующими в построении конвейера машинного обучения (предыдущий опыт работы с конвейером обучения scikit был бы замечательным).

Ключевые компоненты Spark ML Pipeline:

  1. Dataframe: данные как абстракция Spark (может быть RDD, набор данных или кадр данных)
  2. Transformer: Transformer — это абстракция, которая преобразует один кадр данных в другой. Реализует метод transform().
  3. Estimator: абстракция Estimator использует алгоритм, который соответствует модели возврата Spark Dataframe. Реализует подгонку()
  4. Конвейер: Конвейер объединяет несколько преобразователей и оценщиков вместе, чтобы указать рабочий процесс машинного обучения.
  5. Параметры: Общий API для указания параметров.

Создание модели линейной регрессии с помощью Qubida Workflow

Шаг 1. Загрузите данные (csv-файлы с конкурса Kaggle) в Hive с помощью Qubida Connectors.

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

Обычно я начинаю с простого исследовательского анализа данных с использованием Jupyter Notebooks на Qubida. Блокноты связаны с рабочими пространствами проекта Qubida.

Шаг 2. Создайте конвейер машинного обучения с помощью рабочего процесса Qubida.

В приведенном ниже примере я позволил себе пропустить Feature Engineering.

Шаги рабочего процесса:

а) Чтение данных из Hive. Разделите данные для путей обучения и испытаний.

b) Используйте вектор сборки для выбора функций (в этом примере использовались только непрерывные переменные).

c) Перетащите оценщики, преобразования, модели и оценщики моделей, чтобы завершить конвейер.

г) Оцените производительность модели линейной регрессии.

Неплохой MAE с первой попытки: 1948.10

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

e) Когда модели готовы, ими можно легко поделиться или переместить в производственные репозитории. В этом примере я записал модель в HDFS и AWS S3.

Три аспекта машинного обучения: данные, разработка и развертывание

Подводя итог, пример продемонстрировал прием данных и разработку моделей Spark ML с помощью Qubida Workflow. Абсолютно бескодовый и простой способ создания продвинутых конвейеров машинного обучения.

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

Существует множество способов оценки моделей, созданных рабочими процессами. В Qubida мы работаем над интеграцией с другими решениями для развертывания модели машинного обучения в облаке, например: AWS, Google и Azure, или с платформой Qubida при размещении в локальной инфраструктуре.

В следующей статье будет описан пример решения конечного состояния с использованием AWS Lamdba и Alexa для получения прогнозов в реальном времени на основе модели претензий серьезности. Алекса, что предсказано… !!