BigQuery ML allows you to create and execute machine learning models directly in BigQuery using SQL syntax.
CREATE OR REPLACE MODEL `project.dataset.model_name`
OPTIONS(
model_type = 'linear_reg' | 'logistic_reg' | 'kmeans' | 'xgboost' | 'autoencoder' | ...,
input_label_cols = ['label_column']
) AS
SELECT * FROM `project.dataset.table`
Model Type | Description |
---|---|
linear_reg |
Linear Regression |
logistic_reg |
Binary/Multi-class Classification |
kmeans |
Clustering |
xgboost |
Boosted Trees for reg/class |
tensorflow |
Import TF model from Cloud Storage |
autoencoder |
Unsupervised Anomaly Detection |
matrix_factorization |
Recommender Systems |
arima_plus |
Time Series Forecasting |
dnn_classifier |
Deep Neural Network Classifier |
dnn_regressor |
Deep Neural Network Regressor |
SELECT *
FROM ML.EVALUATE(MODEL `project.dataset.model_name`, (
SELECT * FROM `project.dataset.eval_data`
));
SELECT *
FROM ML.PREDICT(MODEL `project.dataset.model_name`, (
SELECT * FROM `project.dataset.new_data`
));
SELECT *
FROM ML.EXPLAIN_PREDICT(MODEL `project.dataset.model_name`, (
SELECT * FROM `project.dataset.new_data`
));
CREATE OR REPLACE MODEL `project.dataset.model_arima`
OPTIONS(
model_type='ARIMA_PLUS',
time_series_timestamp_col='date',
time_series_data_col='sales',
horizon=12
) AS
SELECT date, sales FROM `project.dataset.sales_data`;
SELECT *
FROM ML.FORECAST(MODEL `project.dataset.model_arima`, STRUCT(12 AS horizon));
CREATE OR REPLACE MODEL `project.dataset.model_tuned`
OPTIONS(
model_type='logistic_reg',
auto_class_weights=TRUE,
l1_reg=0.01,
l2_reg=1.0,
learn_rate=0.1,
max_iterations=20
) AS
SELECT * FROM `project.dataset.table`;
-- List all models in dataset
SELECT * FROM `project.dataset.INFORMATION_SCHEMA.MODELS`;
-- Get detailed model info
SELECT * FROM ML.MODEL_INFO(MODEL `project.dataset.model_name`);
SELECT * FROM ML.WEIGHTS(MODEL `project.dataset.model_name`);
-- Export TF model to GCS
EXPORT MODEL `project.dataset.tf_model`
OPTIONS(uri='gs://your-bucket/model-path/');
-- Import TF model from GCS
CREATE OR REPLACE MODEL `project.dataset.tf_model`
OPTIONS(
model_type='tensorflow',
model_path='gs://your-bucket/model-path/'
);