Dentro de Google Cloud, la plataforma en la nube de Google, BigQuery es un software como servicio que consiste en un almacén de datos gestionado, es decir no tenemos que preocuparnos por su administración, y escalable automáticamente a nivel de petabytes de datos.
Permite realizar consultas de SQL de alta velocidad y se puedes acceder con la consola de Google Cloud, la interfaz gráfica o mediante APIs utilizando Java, .NET o Python.
Para facilitar las tareas de los analistas que están familiarizados con SQL pero no con los modelos de machine learning, Google ha creado BigQuery ML para crear y ejecutar modelos de machine learning en BigQuery mediante consultas de SQL estándar.
BigQuery ML permite gran variedad de modelos de machine learning como regresión lineal, regresión logística, clustering, series temporales, redes neuronales, etc.
Vamos a ver un ejemplo práctico de utilización de BigQuery ML. Para ello tenemos que tener cuenta en Google Cloud, tener habilitada la facturación e ir al panel de BigQuery dentro de Google Cloud. Una vez en el panel de BigQuery, tenemos que crear el conjunto de datos donde vamos a crear el modelo y ubicarlo en USA.

Ahora vamos a ver la Base de Datos sobre la que vamos crear el modelo, que está en las Bases de Datos públicas que ofrece Google. Hemos escogido la Base de Datos del censo de ingresos de adultos de Estados Unidos (census_adult_income). A continuación podemos ver el esquema con los campos de la tabla.


Ahora vamos a crear un modelo de regresión logística para predecir si los ingresos están por encima de 50K o igual o por debajo. Para ello vamos a usar como entradas del modelo la edad, la clase de empleo, el país, el estado civil, el nivel de educación, la categoría de ocupación, la raza y las horas trabajadas por semana. La etiqueta será el ingreso. La opción ‘auto_class_weights=TRUE’ equilibra las etiquetas de clase en los datos de entrenamiento. Usamos las primeras 10.000 filas para entrenamiento.
A continuación podemos ver un ejemplo de las categorías de datos usados en el modelo y la consulta para crear el modelo.

CREATE OR REPLACE MODELCensus2.model_train
OPTIONS ( model_type='LOGISTIC_REG', auto_class_weights=TRUE, data_split_method='NO_SPLIT', input_label_cols=['income_bracket'], max_iterations=15) AS SELECT age AS age, workclass AS class, native_country AS country, marital_status as marital, education_num as education, occupation as occupation, race as race, hours_per_week as hours, income_bracket as income_bracket, FROMbigquery-public-data.ml_datasets.census_adult_income
LIMIT 10000
Una vez ejecutada la consulta, podemos ver los detalles, la preparación, la evaluación o el esquema del modelo. Por ejemplo, vemos la curva de precisión-recuperación y la matriz de confusiones.

Después de crear el modelo, evaluamos el rendimiento del clasificador con la función ML.EVALUATE
, que evalúa los valores previstos frente a los datos reales.
A continuación vemos la consulta para evaluar el modelo y los resultados de la evaluación.
SELECT * FROM ML.EVALUATE(MODELCensus2.model_train
, ( SELECT age AS age, workclass AS class, native_country AS country, marital_status as marital, education_num as education, occupation as occupation, race as race, hours_per_week as hours, income_bracket as income_bracket, FROMbigquery-public-data.ml_datasets.census_adult_income
LIMIT 10000 OFFSET 10000 ) )

Como hemos podido ver, BigQuery ML es muy útil si tenemos los datos en BigQuery por las ventajas que ofrece y estamos acostumbrados a trabajar con SQL, aunque perdemos control y detalle sobre todo el proceso de creación y aprendizaje del modelo de machine learning.
My partner and I stumbled over here from a different website and thought I might as well check
things out. I like what I see so now i am following you.
Look forward to exploring your web page repeatedly.
Thanks for the blog article. Thanks Again. Keep writing. Othilia Rudolf Gordy
Heya i’m for the first time here. I found this board and I find It really useful & it helped
me out much. I hope to give something back and aid others like you aided
me.