В этом конкретном посте мы узнаем, как развернуть простую модель прогнозирования линейной регрессии Scikit House Price на платформе Google AI.

Используются следующие технологии и системы:

  1. Набор данных [Ссылка с сайта Kaggle]
  2. Google Colab [среда ноутбука Jupyter для разработки модели]
  3. Google Cloud Shell [Для взаимодействия с компонентами платформы Google Cloud]
  4. Google Cloud AI Platform [Для развертывания разработанной прогнозной модели]

Одна из полезных возможностей Google AI Platform - рентабельный запуск моделей прогнозирующего машинного обучения. Клиентские приложения не связаны с рабочими процессами машинного обучения. Это эффективный способ обслуживания моделей. Платформа AI заботится об автоматическом масштабировании.

Разработайте прогнозную модель на основе набора данных

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

Шаг 1. Получите набор данных

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



Шаг 2. Используйте Google Colab для разработки модели

Для разработки модели используйте Google colaboratory, которая представляет собой среду для ноутбуков Jupyter. См. Ниже информацию о настройке и доступе:



Шаг 3. Основные выводы о разработке модели

а. Определите ключевые особенности, которые влияют на цены на жилье

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

Подготовка данных

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

Примечание. Импортируйте набор данных на диск Google и подключите к записной книжке.

Импортируйте соответствующие пакеты Python и загрузите набор данных.

Анализ данных

Определите типы данных [числовые и категориальные], присутствующие в наборе данных.

  • В какой стране находятся дома?
  • В каких штатах находятся эти дома?
  • Средняя цена дома?

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

Получите разбивку цен по каждой группе спален

Вывод из предыдущего шага:

  • Есть 2 дома с 0 спальнями.
  • Максимальный выброс в нескольких спальнях с 3
  • Есть только один дом с 9 спальнями и может быть далеко от города. Если мы хотим рассматривать несколько спален в качестве предиктора в нашей модели, то мы должны что-то предпринять.
  • У некоторых домов нулевая цена

Давайте разберемся с проблемой: дома с нулевой ценой

Вывод из предыдущего шага:

  • Блюлайн - это ценовая раздача
  • Черная линия - нормальное распределение

У нас 3 проблемы:

  • Дома с 0 спальнями
  • Гигантский выброс почти за 27 миллионов долларов - в 50 раз дороже обычного дома
  • 49 домов без цены

Разработайте новый фрейм данных без проблем 1,2 и 3

Разработка модели

Переместите соответствующие функции во фрейм данных X и спрогнозируйте метки во фрейм данных Y

Разделите y и X на наборы данных для обучения и тестирования

Обучите базовую модель множественной регрессии и распечатайте коэффициенты

Вывод из вышеуказанного шага:

Исходя из коэффициентов:

  1. Прирост в 170 тыс. Долларов [1,712 x (10⁵)] при изменении одного значения в поле зрения.
  2. Очевидно, это не самая лучшая модель.

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

Экспорт модели в виде файла pkl

Развернуть модель на платформе Google AI

Шаг 1. Установите Google Cloud SDK

См. Ниже информацию об установке Google Cloud SDK.



Шаг 2. Создайте и загрузите модель в корзину Cloud Storage

Создайте отдельный сегмент хранилища для конкретного региона для хранения файлов модели. Для понимания представьте AI-модели как точку расширения ковша.

gsutil mb -c standard -l us-east1 gs://BUCKET_NAME-ai-models

Убедитесь, что файл модели имеет формат pickle [model.pkl] или формат joblib [model.joblib].

Перейдите в папку с загруженной моделью и запустите команду копирования.

gsutil cp ./model.pkl gs://YOUR_BUCKET/model.pkl

Примечание. Убедитесь, что у учетной записи службы IAM есть доступ к сегменту хранилища

gsutil -m acl ch -u [email protected]:R -r gs://YOUR_BUCKET

Шаг 3. Создайте модель на платформе Google AI

Следующая команда создает модель.

gcloud ai-platform models create HousePriceLinearRegression --region=us-east1

Проверьте то же самое в Google Cloud Console.

Шаг 4. Создайте исполняемое состояние версии модели

Выполните следующую команду, чтобы создать модель

Примечание. Атрибуты соответствуют созданной модели. Framework - scikit-learn, версия python - 3.7

gcloud ai-platform versions create HousePricePredV1 --model=HousePriceLinearRegression --origin=gs://YOUR_BUCKET/HousePricePrediction --runtime-version=2.2 --framework=scikit-learn --python-version=3.7 --region=us-east1 --machine-type=n1-standard-2

Проверьте развернутую версию в Google Cloud Console

Протестируйте развернутую прогнозную модель

  • Щелкните развернутую версию модели и перейдите на вкладку «Тестирование и использование».
  • Предоставьте модели входные данные json

Поздравляем с успешным развертыванием простой прогнозной модели scikit-learn на платформе Google AI :)