Una de las cosas que mas me ha llamado la atencion al ponerme con Google Cloud platform y especialmente BigQuery (que es la joya de la Corona) es la posiblidad de hacer modelosusando SQL. Después de tan tiempo aprendiendo R y luego Python, ahora resulta que en BigQuery los debes hacer en SQL.
Bueno, pues nada, parece un poco fuera de lugar pero allá vamos. En el curso una cosa que he echado en falta ha sido el hecho de que apenas se explican que hacen los ejercicios. En decir te explican la forma, pero no el porqué. Aunque entiendo que un ingeniero de datos no debe saber tanto de como hacer los modelos, a mi parece queda un poco cojo hacer un copia y pega sin saber en realidad lo que hace el código. Sobre todo si vienes de Software Engineering, y no sabes ni como funcionan los modelos.
Así que aquí estoy yo para intentar dar un poco de luz a esto.
Además a mi me resultó especialmente fácil porque para mi dissertation yo hice un modelo parecido. (si es que está todo inventado... larga vida al Machine Learning)
A la hora de crear un mdoelo, lo primero que tenemos que hacer es éntrenar nuestro modelo. Para eso vamos a usar una parte de nuesta muestra para entrenarlo(un porcentaje) y luego lo aplicaremos al total para ver si se puede extrapolar.
En cuanto al código que nos da para el ejercicio Google Cloud
Aquí ya vamos a crear un modelo que se llamará bike model.
// Query train a model
CREATE OR REPLACE MODEL
bike_model.model
En Options le vamos a meter las variable target. Es decir la que queremos predecir y además le vamos a decir el tipo de algortimo que vamos a usar. En este caso vamos a hacer una regresion lineal
OPTIONS
(input_label_cols=['duration'],
model_type='linear_reg')
Para hacer la regresión lineal vamos a seleccionar además otras variables llamadas independientes. En este caso vamos a seleccionar la duración, el dia de la semana y la hora.
Si no estás muy puesto en SQL te puede resulta raro el tema CAST que se mete por ahí en medio.Es una sentencia avanzada del lenguaje que se usa para cambiar el tipo de variable.En este caso las dos variable las convertimos a string y las llamamos como dayofweek y hoursofday. Las dos las convertirmos desde start-date
AS
SELECT
duration,
start_station_name,
CAST(EXTRACT(dayofweek
FROM
start_date) AS STRING) AS dayofweek,
CAST(EXTRACT(hour
FROM
start_date) AS STRING) AS hourofday
FROM
`bigquery-public-data`.london_bicycles.cycle_hire
Y para terminar con el from elegimos el dataset que estamos usando.
Espero que esto sirva para dar un poco más de luz en BigQuery. Todos los derechos reservados a Google que son los que han escrito el código.
En caso de que quieras saber que pasa una vez que le das a run. BigQuery te calculos los cohefientes como si hubieras usado cualquier libreria de DataScience en R o Python. Te lo saca en su tablita y así puedes ver si funciona tu moledo o si debes seguir trabajando en el.
Seguiremos informando
Otros link a checkear