Translate

Mostrando entradas con la etiqueta GCP. Mostrar todas las entradas
Mostrando entradas con la etiqueta GCP. Mostrar todas las entradas

jueves, 8 de junio de 2023

Crear un modelo de regresión linear en BigQuery ML- GCP

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

jueves, 7 de enero de 2021

MLOps - Machine Learning + Operations, un framework agile para equipos de Data Science

 Conforme aumenta la madurez en datos en las empresas y el uso de Machine Learning se hace más común el uso de framework e intentar buscar standares para que la colaboración dentro de la empresa y el self'service de datos sea más rápido y ágil. Cualquier que haya trabajado en un equipo de Data o de Analytics, o incluso haya tenido que trbajar creando modelos con Data Scientifics (Científicos de datos) se habrá dado cuenta que Scrum u otros frameworks de desarrollo de software no funcionan tan bien como en un proyecto puramente de desarrollo. Muchas veces se crean cuellos de botella o se tienen que rehacer tareas continuamente y el equipo dependen continuamente de DevOps para las release de los modelos y bueno, un largo etcétera.

Las grandes tecnológicas parece que han estado trabajando en como unir Operations y Machine Learning y han creado un framework para unirlo. Ya el año pasado comentaba el caso de DataOps manifiesto. Sin embargo, aquí se va un paso más alla y se especifica que es para equipos de Machine Learning o Aprendizaje Automático, ya que estos requieren de releases para los modelos y da esa agilidad que encontramos en Devops a los equipos de Data.

La wikipedia tiene una definicion de MLOps esto que viene a decir que la unión de DevOps y Machine Learning.

Esto, es algo bastante novedoso así que todavía esta todo un poco en pañales pero parece que tiene un gran futuro. Así que es mejor que nos informemos de como podemos empezar a usar este framework gracias al cloud computing


Qué tiene en común DevOps y MLOps

Si pensamos en un equipo de Devops, debemos fijarme en las prácticas ágiles que siguen. 
Las dos tareas principales que ambos tienen en común son
- Integración continua (CI)
- Entrega continua (CE)

Sin embargo, según el equipo de GCP que han creado una introdución a MLOps y las fases de maduración de las empresas o equipos, MLOps además  tienen otras fases que los distintgue de DevOps
- Entrenamiento Contínuo (CT)

Para saber más sobre MLOps es muy recomendable este artículo del equipo de GCP sobre las fases de maduración de MLOps

Para una introducción y saber como llevan esto las grandes empresas de tecnología, aquí puedes ver un video introductorio de Google sobre Best Practices



Y otro video de Microsoft de introducción de Machine Learning- Operations

lunes, 4 de enero de 2021

Soluciones de Machine Learning en GCP - Google Cloud Platform

Una de las cosas que más me ha impactado sobre Google Cloud y los demás proveedoras en la nube como Amazon AWS y Azure es la cantidad de servicios que ofrece sobre Machine Learning. Durante mi carrera profesional siempre he encontrado que la democratización del acceso a diferentes datos siempre ha sido bastante complicada desde un punto de vista técnico y los proyectos duraban annos, así que mucha empresas, aburridos por el pace de estos directamente abandonaban los esfuerzos puestos en ello y se dejaban de priorizar estos. 
Estos últimos dos annos GCP se ha propuesto que sea cada vez más facil tener acceso a la automatización de procesosy nos ofrecen diferentes formas de desarrollar y usar estos algoritmos sin tener que saber muy bien que hacen. Además el hecho de poder pagar por los recursos que necesitemos, sólo cuando los necesitamos y sin necesidad de tener un ordenador super potente, quita muchas barreras a usuarios que tienen ordenadores lentos.

Que soluciones ofrece Google Cloud Platform en materia de aprendizaje automatico.


martes, 6 de octubre de 2020

Bigquery user interface para principiantes

Este ultimo año me he convertido en una advocate de Google Cloud y de BigQuery y me ha tocado enseñar como funciona. Parece que muchos analistas digitales miran con bastante recelo a la interfaz de usuario de BigQuery con toda esa parafernalia de Ingenieria de Datos o cientifico de datos. La buena noticia es que 

En realidad BigQuery quita mucha complejidad a las asi que se me ha ocurrido llenarla de dibujitos y colorines y explicar como es la arquitectura de datos para el usuario final, tipo analista digital.

Bueno, el diseño no es lo mio, y la verdad es que  habría que echar la culpa del resultado final, no soy a mi (mea culpa) sino tambien a Microsoft por su programa ´Paint 3d´.

Una vez que accedemos a GCP Google Cloud Platform   en nuestro proyecto sólo tendremos que poner en el buscador BigQuery y nos llevará a la siguiente pantalla.

Una vez en seleccionado nuestro proyecto vamos a crear un dataset para poder analizar datos.
En nuestro caso se va a llamar eCommerce, ya que vamos a medir transacciones en él.

Aqui es donde he visto que los principiantes tienes mas problemas con la interfaz.

Dentro de nuestro proyecto, vamos a tener
- Un proyecto
- Donde crearemos un dataset
- Este Dataset tendrá tablas
- Las tablas tendrán filas y columnas

- Además para tener mayor acceso a los datos vamos a crear vistas, pero esto lo explicaré más abajo
#Si miramos la interfaz de usuarios podemos ver la siguiente estructuras en nuestros proyectos.


Practicamente de un vistazo, bajo el menú de la izquierda, podemos ver todo lo necesario para hacer nuestras queries. Y además si miramos el resto de la pantalla podemos encontrar las misma referencias. He añadido las referencias (dibujitos) 

sábado, 3 de febrero de 2018

Calcular Unique Visitors en eCommerce usando BigQuery

 Como calcular Unique Visitor para Channel Grouping de Google Analytics

Uno de las metricas mas importantes para un analista web son los unique visitors. Hasta ahora para conseguir esta metrica en BigQuery debemos usar el fullVisitorId que es semejante a userID

La siguiente consulta nos muestra como conseguir los unique visitors de cada canal del Channel Grouping de 

- nuestro proyecto llamado misdatos

- donde hemos exportado una tabla con todas las sesiones

Qué hace este código SQL?

Google Analytics nos proporciana el fullVisitorId, y para poder contar los no duplicados necesitamos usar DISTINCT. Con el AS creamos ademas el nombre de la nueva variable que vamos a llamar unique_visitors - visitantes unicos.



Otras  métricas similares se pueden encontrar en la tabla de abajo, actualizado a Agosto 2021. Actualmente ha quedado como deprecated el visitorID y ha aparecido (desde mediados de 2018) otra métrica que si que podemos encontrar como tal aparece en en la interface de Google Analytics, el ClientID. 


Más info sobre BigQuery