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

Цель этого упражнения

Целью этого упражнения является использование машинного алгоритма, разработанного на платформе GCP, для прогнозирования потенциального дефолта по кредиту из данного приложения с использованием предоставленных данных.

  1. Ресурсы для завершения

а. CSV-файл с кредитными данными, который можно получить здесь.

б. Проект GCP.

Файл CSV содержит несколько столбцов данных, отражающих различные функции, которые определяют переменную кредитного дефолта, обозначенную как «default_ind». Перед загрузкой файла в BigQuery требуется очистка данных. К ним относятся замена всех отсутствующих и нулевых значений ячеек значениями «0», выбор строк столбца mvar21-mvar27 и переименование их в mvar1-mvar7 и удаление всех остальных столбцов, кроме application_key, mvar1-mvar7 и default_ind. Это будет ваш набор функций и целевое значение для вашей модели машинного обучения. Вы можете использовать Excel или Google Cloud DataPrep для очистки данных.

2. Создайте набор данных BigQuery

В BigQuery создайте набор данных с именем «newproject» и две таблицы с именами «credit» и «credit-test». Во время создания вашей «кредитной» таблицы укажите, что ваша схема включает application_key, mvar1, mvar2, mvar3, mvar4, mvar5, mvar6, mvar7 и default_ind. Сделайте то же самое для таблицы «кредит-тест», но добавьте в схему столбец под названием «пред».

3. Загрузите свои кредитные данные в таблицу «Кредит»

Загрузите файл CSV в таблицу «Кредит». Затем выполните следующий запрос, чтобы разделить данные на 2 пакета для обучения и тестирования модели машинного обучения. Сохраните результаты запроса в отдельной таблице под названием «кредит-распределение».

4. Создание сегментов хранилища

Перейдите к облачному хранилищу в консоли GCP. Создайте 2 сегмента хранилища, один с именем вашего идентификатора проекта, а другой с названием temporaryGcsBucket.

5. Создайте свой файл SparkML Python

Я предоставил фрагмент кода машинного обучения, написанный на Python и использующий платформу SparkML, которая загружает информацию из таблиц BigQuery, применяет к ней модель логистической регрессии ML и возвращает столбец с именем «pred», представляющий прогнозы модели для «default_ind». столбец для строк, обозначенных меткой «тест». Затем эти результаты экспортируются в таблицу «кредит-тест», которую вы создали на предыдущих шагах. Назовите свой файл python spark.py и загрузите его в корзину с названием вашего Project-ID.

6. Развернуть кластер Dataproc

Теперь самое интересное! Вы готовы развернуть кластер Dataproc и импортировать свою модель Python для достижения своей цели машинного обучения. Мы хотим создать модель, которая может предсказать наш столбец «default_ind» для предоставленных нами данных. Модель логистической регрессии идеально подходит для этой работы, поскольку она вычисляет 2 возможных значения для любого входного набора функций. Значения, которые мы хотим вычислить, равны 0 (означает, что клиент не допустит невыплаты кредита) и 1 (означает, что клиент не допустит невыплаты кредита). Наш файл python будет использовать наши обучающие данные в наших таблицах BigQuery, создавать модель логистической регрессии, а затем использовать наши тестовые данные, чтобы увидеть, насколько они точны в прогнозировании результатов.

Перейдите к Dataproc в меню навигации. Выберите «Создать кластер» вверху и нажмите «Compute Engine» во всплывающем окне. Вы можете использовать значения по умолчанию для большинства настроек. Нажмите «Создать», когда закончите. Подготовка кластера может занять до 5 минут.

7. Отправьте свою работу

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

Обязательно выберите PySpark в качестве типа задания, так как вы используете «Python-Spark» для описания своего машинного языка. В поле Основной файл Python выберите путь к файлу Python в облачном хранилище. В файлах Jar добавьте имя gs://spark-lib/bigquery/spark-bigquery-latest.jar. Это необходимо, чтобы ваш файл Python мог иметь доступ к соединителям BigQuery, необходимым для задания. Оставьте остальные поля пустыми и нажмите «Отправить». Выполнение задания займет несколько минут (примерно 5 минут), после чего вы получите сообщение об успешном завершении задания.

8. Перейдите к таблице «кредит-тест» в BigQuery.

Чтобы просмотреть экспортированные результаты, перейдите к таблице BigQuery, где вы увидите совокупность результатов рабочего процесса машинного обучения. Прогнозируемые результаты вашего тестового набора появятся в столбце «pred» рядом с ожидаемыми значениями в столбце «default_ind».

И вот оно! Вы успешно применили алгоритм машинного обучения к данным, хранящимся в вашем хранилище данных BigQuery, и экспортировали результаты обратно в BigQuery для анализа!

9. Удалите неиспользуемые ресурсы.

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