Продолжая предыдущий пост, в этой статье основное внимание будет уделено приему данных в 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:
- Dataframe: данные как абстракция Spark (может быть RDD, набор данных или кадр данных)
- Transformer: Transformer — это абстракция, которая преобразует один кадр данных в другой. Реализует метод transform().
- Estimator: абстракция Estimator использует алгоритм, который соответствует модели возврата Spark Dataframe. Реализует подгонку()
- Конвейер: Конвейер объединяет несколько преобразователей и оценщиков вместе, чтобы указать рабочий процесс машинного обучения.
- Параметры: Общий 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 для получения прогнозов в реальном времени на основе модели претензий серьезности. Алекса, что предсказано… !!