Вступление
BigQuery, высокопроизводительный сервис выполнения SQL, предлагаемый Google Cloud Platform (GCP), стал популярным выбором для обработки больших объемов данных. Он позволяет проводить интерактивный анализ данных и запускать сложные запросы, не беспокоясь об управлении инфраструктурой. Кроме того, BigQuery предоставляет настраиваемые функции машинного обучения (ML), которые позволяют организациям создавать и развертывать модели ML непосредственно в среде BigQuery.
Создание набора данных и таблицы
Первым шагом в создании модели машинного обучения в BigQuery является создание набора данных и таблицы, которые будут содержать данные для обучения. Набор данных служит контейнером для таблиц, а таблица представляет собой фактические данные.
# Создать набор данных
CREATE DATASET my_dataset;
# Создать таблицу с разделителем запятых
CREATE TABLE my_dataset.my_table (
feature_1 FLOAT64,
feature_2 FLOAT64,
target_variable FLOAT64
);
# Загрузить данные в таблицу из файла CSV
LOAD DATA FROM "gs://my-bucket/my-data.csv"
INTO TABLE my_dataset.my_table
OPTIONS (
header_rows = 1,
skip_leading_rows = 1,
delimiter = ","
);
Выбор типа модели машинного обучения
BigQuery поддерживает различные типы моделей машинного обучения, включая линейную регрессию, логистическую регрессию и дерево решений. Выбор типа модели зависит от характера прогнозируемой переменной и типа данных.
Обучение модели
Построив набор данных и выбрав тип модели, можно приступить к обучению модели. Для этого используется SQL-подобный синтаксис.
# Обучить линейную регрессионную модель
CREATE MODEL my_model
OPTIONS (
model_type = 'LINEAR_REG'
)
AS
SELECT
feature_1,
feature_2,
target_variable
FROM
my_dataset.my_table;
Оценка модели
После обучения модели ее необходимо оценить, чтобы определить ее производительность. BigQuery предоставляет встроенные функции оценки, которые можно использовать для расчета коэффициента детерминации (R2), средней абсолютной ошибки (MAE) и других показателей.
# Оценить модель
EVALUATE MODEL my_model
OPTIONS (
split_data = true,
split_fraction = 0.75
)
AS
SELECT
*
FROM
ML.EVALUATE(MODEL my_dataset.my_model, TABLE my_dataset.my_table);
Развертывание модели
Пройдя оценку, модель можно развернуть, чтобы делать предсказания на новых данных. BigQuery позволяет развертывать модели как табличные функции, поэтому их можно использовать в запросах SQL.
# Развернуть модель в качестве табличной функции
CREATE FUNCTION my_predict(feature_1 FLOAT64, feature_2 FLOAT64)
AS (
SELECT
ML.PREDICT(MODEL my_dataset.my_model, STRUCT(feature_1, feature_2))
);
Заключение
Используя настраиваемые функции машинного обучения BigQuery, организации могут создавать и развертывать модели машинного обучения непосредственно в среде BigQuery. Этот подход упрощает обработку больших объемов данных, делает ML доступным для неспециалистов и может привести к эффективному принятию обоснованных решений на основе данных.