Translate

lunes, 6 de enero de 2025

GCP - HOW TO : copy a Github repo in Vertex AI

 
This integration is particularly valuable for data scientists and developers who need a robust, secure development environment with advanced machine learning and data analysis capabilities, all while maintaining efficient version control.

HOW-TO do it in GCP

Jump into Vertex AI Workbench and get JupyterLab running - it's pretty straightforward, just like opening your favorite code editor.
Head over to your GitHub repo and grab that HTTPS URL from the Code button - you know, the green one that's always hanging out there.
Alternative, in JupyterLab, hit up the Git menu and pick "Clone a Repository" or then just drop that URL you copied. Simple as that.
Hit enter and watch your repo pop up in your workspace. Done and dusted

Video



martes, 13 de agosto de 2024

Python Polars mejorando el performance de pandas

Durante el último año cada vez más analista que trabajan con Big Data usan Polars frente a Panda para el análisis de datos.

Entre ambas librerías existe una gran diferencia que hace que sea posible que Polars tenga un performance mejor, frente a Pandas, la librería por excelencia.


Cómo está creado Polards frente a Pandas

Polars está escrita en un lenguaje a bajo nivel llamado Rust y además hace uso de forma más fácil del paralelismo en python. Esto provoca que consuma menos recursos.

Cómo usar esta libreria

Igual que usamos pd para importar la librería de pandas, para usar polars puedes usar lo siguiente:

import polars as pl

Para seleccionar columnas puedes usar select de la siguiente forma:

df.select(pl.all())

Y si quieres filtrar filas:
 
df.filter(pl.col("ref") == "c")


Si comparamos con pandas en cuanto a sintaxis puedes verla aquí que se similar pero necesitamos una chuleta ya que cambia. En comparación con pandas en más cercana al lenguaje natual, lo cual es de agradecer.

Eliminar filas con valores nulos:Pandas:
df.dropna()
Polars:
df.drop_nulls()


Visto todo esto para datasets grandes vale la pena medir el performance por si es tan grande la diferencia entre ambas librerias.


Más información


Y una comparación con pandas en cuanto a sintaxis :

domingo, 11 de agosto de 2024

Curva de Beneficio

Hace una semana compartieron en Linkedin un data product de Mike Rhodes ha super útil para poder visualizar el efecto que tiene en el coste los gastos en campañas de Marketing.

La Curva de Beneficio muestra cómo es probable que cambie el beneficio total a medida que cambia la inversión en marketing.

Para poder usar este gráfico necesitamos el gasto y las conversiones. a partir de este podremos ir calculando las demás métricas.

Algunos conceptos que debemos entender antes de empezar a meter datos y sacar conclusiones:

  • El Beneficio Incremental ;muestra el beneficio adicional obtenido por cada aumento en el gasto. Las barras positivas (verdes) indican aumentos de gasto rentables.
  • Beneficio Total frente al Retorno de la Inversión Publicitaria (ROAS), layuda a identificar el rango de ROAS que maximiza el beneficio.
  • El ROAS Marginal : muestra el retorno esperado de la inversión publicitaria correspondiente a un nivel de gasto, lo que ayuda a identificar los rendimientos decrecientes
El ROAS Marginal es un concepto bastante potente que suele pasar desapercibido para los equipos de Marketing pero que puede ser muy útil

Break even 



Profit max



Puedes acceder al data product en

martes, 2 de julio de 2024

K-means cluster - How to choose K

 One key step in K-means clustering is deciding on the number of clusters. Ideally, the data itself should guide us on the optimal number of groups.

There are several ways to detemine the number of cluster

This is what we want to achieve in a picture with our groups:


Elbow criterion

The elbow criterion helps us achieve this. It plots the ratio of within-cluster variance to between-cluster variance against the number of clusters. We want this ratio to be low, indicating tight clusters and high separation between them.

In a graph: 

It looks like this:


As we increase the number of clusters, this ratio initially drops significantly. However, there comes a point where adding more clusters doesn't lead to a substantial improvement. 

This point, known as the "elbow," is considered the ideal number of clusters.

More information about the elbow criterion

https://en.wikipedia.org/wiki/Elbow_method_(clustering)

domingo, 23 de junio de 2024

Customer segmentation with K-Means

 Today, let's unravel the magic of K-Means clustering, your trusty tool for discovering those hidden gems within your marketing data.

What's K-Means Clustering, you ask?

Think of K-Means as a way to group similar data points together, helping you uncover those underlying patterns that might not be obvious at first glance. It's like sorting your favorite candies into different piles based on their flavors – except in this case, we're using customer data like demographics or location.

How Does It Work?

  1. Choose K: First, you need to decide how many clusters (K) you want. It's like deciding how many candy piles you'll have! We'll talk about how to find the perfect K later.
  2. Random Centers: Imagine randomly picking K candies as the starting centers for your piles. That's what we do with your data – randomly select K points as the initial cluster centers (centroids).
  3. Calculate Distances: Now, measure the distance between each data point (candy) and each center (pile). We use the Euclidean distance formula (don't worry, it's not as scary as it sounds!).
  4. Group Them Up: Assign each data point to the closest center, creating your clusters!
  5. Find New Centers: Re-calculate the center of each new cluster (like finding the average position of all the candies in a pile).
  6. Repeat: Keep repeating steps 3-5 until your clusters stop changing much. You've found your final clusters!

Validate Your Clusters:

  • Check the Variance: How tightly packed are the data points within each cluster? Low variance is good, like having candies that are all very similar in flavor within each pile.
  • Dunn Index: This fancy index measures both the tightness of your clusters and how far apart they are. Aim for a high Dunn Index – it means your clusters are well-defined and distinct.

Remember:

  • K-Means is just a tool, not magic! You'll need to use your marketing expertise to interpret the clusters and give them meaningful names.
  • I´ll cover how to find the best K and name your segments in upcoming posts.

martes, 24 de octubre de 2023

Introducción a Vertex AI y las herramientas que lo componen

 Listado de herramientas que encontramos en Vertex AI

De un vistazo podemos ver en esta tabla de las diferentes herramientas que están contenidas dentro de Vertex y que nos ayudan a crear nuestros modelos de forma más fácil desde las soluciones No code a los servicios para entrenar  y desarrollar estos


Para más info y acceso al servicio en Google Cloud: https://cloud.google.com/vertex-ai/



jueves, 17 de agosto de 2023

Descargar videos y cursos de Coursera a nuestro PC

Espero que no os hayais encontrado en la situación de encontraros sin datos en esta 'epoca de confinamiento. Hace unas semanas yo me encontré con este tema. 
 
Coursera es mi sitio favorito para aprender nuevas cosas y he sido usuaria desde tiempos inmemorables. Tenemos un montón de MOOC donde aprender de todo y cada vez en más idiomas.

Qué son los MOOC

Los MOOC son cursos masivos abiertos. Como mundo capitalista que somo muchas universidades han aprovechando para monetizar los contenidos que abren y si quieres un certificado para muchos de esos cursos debes de pagar. Pero, hemos venido a aprender no?

El primer curso que completé fue uno de HCI (Human Computer Information) de la Universidad de Standford.El profe después se fue a California y se llevó su MOOC con él. Era inimaginable toda la gente que nos juntábamos ahí para aprender. De todos los países, con nuestra media lengua en inglés. 

He de decir que el profesor le echaba horas y muchas ganas. Era un continuo aprender para él y para nosotros Más tarde empezaron a ofrecer el curso en espanol. Yo hice este curso dos veces, aprovechando además los recursos en castellano, ya que lo más valioso eran las peer reviews. Igualmente muchas empresas de software suelen tener convenios y te dejan usar este software.

Así descubrí balsamiq y otro software de prototipado algo más complejo pero que ayudar a los clientes a ver cómo quedaría esta página. 

Hace unos años crearon una app donde puedes descargarte lecciones. Lo cual está bien, pero sinceramente no quiero ver los videos ni las lecciones en el móvil, yo soy mucho más de PC. 
Así es como me veo mientras escribo esto.




Así que volviendo a esto, confinada, sin conexión a Internet en casa, movil roto (ah olvidé esto). Qué podemos hacer.

Tachán (no, no tengo Chromecast)

En caso de que esteis en ese caso y no queráis tirar de datos y toquéis algo de Python aquí tenéis un script para hacerlo. Debemos seguir unos sencillos pasos para hacerlo.

Pasos que vamos a seguir

Para simplificarlo necesitamos en caso de que tengamos un ordenador windows.
  1. Chrome navegador
  2. Instalar en Chrome cookies.txt
  3. Estar inscritos en el curso que queramos descargar. aunque sea en la modalidad auditoria (audit)
  4. En windows- Abrir CMD
En mi caso quiero descargar este curso que Google además ofrecía gratis.
Machine Learning for Business Professionals

Esta es la dirección web :

Descargar cookies


Si tenemos chrome lo primero debemos instalar una extensión que se llama cookies.txt


Y tras esto, vamos  a visitar la página del curso de coursera y descargar las cookies. Primero pulsamos el icono y después en el texto que nos aparece a lo pop up le damos a descargar cookies.




Corriendo el script para descargar el curso de Coursera

Si estamos en windows debemos abrir CMD  y pegar en mi caso
dl_coursera --cookies /Users/Maria/Downloads/cookies.txt  
--slug machine-learning-business-professionals --outdir mt --how builtin

vale, que debes cambiar aquí:

--cookies xxxx-direccion-donde-tenemos-descargadas-las-cookies-de-coursera-xxxx
Aquí debes poner la dirección donde están las cookies)
--slug xxxx-url-especifica-del-curso-xxxx
Aquí pondrás la dirección del curso
--outdir xxxxxxxx
Aquí el nombre del directorio donde se descargará

Resultado : Ya tenemos los videos en nuestro ordenador

Y et voilá aquí tendremos nuestro cursos con sus videos y materiales
 

Espero que sea de ayuda en tu camino al aprendizaje.

Este curso además aunque tiene ya varios años es super útil para entender los beneficios para las empresas.

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

viernes, 20 de enero de 2023

Framework para EDA y como automatizar en Python el análisis exploratorio

 Antes de ponernos a hacer algún modelo o análisis y más allá de las herramientas que vamos a utilizar nos va a tocar familiarizarnos con los datos y ver que tipo de modificiones debemos hacerle antes de tenerlos listos 
Para ello existe un tipo de análisis EDA: Análisis de datos exploratorio. 
Lo que podemos definir que entra dentro de este análisis va a depender de las necesidades del dataset y de las preguntas que tenga el negocio, Lo que si es cierto es que una vez hecho uno, podemos reutiliar formulas para aplicarlo al resto de análisis.Sobre todo la parte de visualización  
Así que podemos definir un framework para transformar esos datos

Framework para realizar el análisis exploratorio

Podemos así ver 5 fases que pueden ser iterativas:

Data Sourcing

De dónde vienen los datos, tenemos que modificar el tipo de variable o la codificación? 

Data Cleaning

Existen valores nulos? Debemos eliminar valores atípicos, valores duplicados.

Univariate analysis

Cómo se distribuye cada una de las variables? Valores máximos y mínimos, ...

Bivariate analysis

Existe correlación entre dos variables. Una variabe ayuda  a predecir a la otra?

Multivariate analysis

Y cómo se comportan estas variables en su conjunto? Podemos añadir nuevas variables a partir de las que ya tenemos?

Automatización del análisis exploratorio en Python

Pues visto así esto nos puedo llevar bastante tiempo, pero se irá una inversión a medio plazo. Como comentaba más arriba gran parte del análisis exploratorio para el análisis de datos se puede automatizar. 

df.describe()

Y sobre todo visualizando las variables usando numpy y pandas con seaborn

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt


Librerias para la automatización del EDA en Python

Hasta la fecha ya tengo en mi bookmark tres librerias que automatizan esta parte. Sobre todo a mi me parece útil para hacer visualización tras transformar datos o creas nuevos. Estas librerias también se puede utulizar para comparar los datos que tenemos en nuestros train dataset de forma muy rápida. 
Las tres librerias que comento aquí hacen uso de tan sólo 2-3 líneas de comando.

Por mi orden de preferencia:
  1. 1. Pandas profiling, que nos da un informe de spoiler como este. Aunque los comandos avanzados no son muy avanzados, aquí tienes como instalar esta librería en Python
  2. 2. Dataprep 
  3. 3. Sweetviz, que es más ligero de pandas profiling

Quiero saber más sobre EDA!!

lunes, 26 de septiembre de 2022

HOW-TO: SQL When to use USING instead of WHERE - SQL INTERMEDIATE

 Visto en Leetcode:

https://leetcode.com/

Problema: 

Dadas dos tablas con IDs de usuario queremos saber el nombre y el id de usuario con su id único.


Además queremos que aparezcan los nulls

Explicación:

En un primer momento lo más fácil sería pensar en usar un LEFT JOIN o un RIGHT JOIN

Sin embargo tenemos una claúsulas que nos puede ayudar a simplicar el código creada para estos casos concretos y sería USING

SELECT unique_id, name 

FROM Employees e

LEFT JOIN EmployeeUNI u ON e.id = u.id


Por qué usar USING en SQL

Using hace más legible el código y además nos ayuda a prevenir problemas más complejos.

Cómo usar USING en SQL

# Write your MySQL query statement below
SELECT unique_id,name
FROM Employees
LEFT JOIN EmployeeUNI
USING(id)

jueves, 8 de septiembre de 2022

Product Analytics: How to calculate retention and what does it means.

Understanding how well your business keeps customers engaged is crucial for success. Retention rate is a key metric to measure this success, but there's no one-size-fits-all approach. Depending of your goals and therefore your KPIs you can choose one of them to measure strategies or tactics.
Let's explore three common retention methodologies:

Classic Retention (Day N)

This method tracks the percentage of new users who return on a specific day. For example, if 3 out of 10 new users return on the second day, your Day 2 retention rate is 30%.

  • Benefits: Daily granularity, easy to explain and calculate.
  • Limitations: Sensitive to daily fluctuations.
  • Best for: Measuring the immediate impact of short-term campaigns or analyzing day-to-day retention trends.

Range Retention

This measures retention over a specific time interval, like a week or a month. For instance, if 9 out of 50 new users return within the first week, your first-week retention rate is 18%.

  • Benefits: Smooths out daily noise, easy to explain, good for long-term trend analysis.
  • Limitations: Less granular, longer lag time for results.
  • Best for: Monitoring overall business health and identifying weekly or monthly behavioral patterns.

Rolling Retention

This calculates the percentage of new users who return on or after a specific day. It provides a single metric representing long-term customer engagement.

  • Benefits: Fast to calculate, reflects overall stickiness.
  • Limitations: Open-ended, can be constantly changing, doesn't differentiate between frequent and infrequent users.
  • Best for: Supplementing other KPIs and understanding long-term customer relationships.

Choosing the Right Method

  • Classic Retention: Ideal for tracking short-term campaigns and daily engagement.
  • Range Retention: Best for monitoring overall business health and identifying behavioral patterns.
  • Rolling Retention: Useful for supplementing other metrics and understanding long-term customer relationships.

domingo, 20 de febrero de 2022

Product ideation: Diagrama de Ishikawa

Dentro de la metodología de innovación en design thinking se puede hacer uso del diagrama de Ishikawa. 

El Diagrama de Ishikawa, también conocido como Diagrama de Espina de Pescado, una herramienta visual poderosa que te ayudará a navegar por las complejidades del proceso creativo y a asegurar que tu producto final sea un éxito rotundo.

El Diagrama de Ishikawa es una herramienta versátil y valiosa para cualquier equipo de desarrollo de productos. Al utilizarlo de manera efectiva, podrás anticipar y superar obstáculos, optimizar tus procesos y, en última instancia, crear productos que deleiten a tus clientes y impulsen el éxito de tu negocio.

¿Qué es el Diagrama de Ishikawa?

Imagina el esqueleto de un pez: la cabeza representa el problema o efecto que quieres analizar (en este caso, un producto fallido o con margen de mejora), y las espinas son las posibles causas que contribuyen a ese resultado. Estas causas se clasifican en categorías principales, como:

  • Métodos: Procesos de diseño, desarrollo, producción.
  • Máquinas: Tecnología, herramientas, equipos utilizados.
  • Mano de Obra: Habilidades, capacitación, motivación del equipo.
  • Materiales: Calidad, disponibilidad, costo de los insumos.
  • Medio Ambiente: Condiciones de trabajo, factores externos.
  • Mediciones: Métricas, sistemas de control de calidad.

¿Cómo Aplicarlo en la Creación de Productos?

  1. Define el Problema: ¿Qué quieres lograr con tu producto? ¿Qué desafíos o problemas potenciales anticipas?
  2. Identifica las Categorías Principales: Adapta las categorías tradicionales (6M) a tu contexto específico. Por ejemplo, en desarrollo de software, podrías considerar "Código", "Diseño UX/UI", "Requisitos", etc.
  3. Lluvia de Ideas: Reúne a tu equipo y genera ideas sobre las posibles causas que podrían afectar el éxito del producto, asignándolas a las categorías correspondientes.
  4. Profundiza en las Causas Raíz: Analiza cada causa y busca subcausas más específicas. Utiliza preguntas como "¿Por qué sucede esto?" para llegar al fondo del asunto.
  5. Prioriza y Actúa: Identifica las causas más impactantes y desarrolla soluciones concretas para abordarlas.

Beneficios del Diagrama de Ishikawa:

  • Fomenta la Colaboración: Involucra a todo el equipo en la identificación y resolución de problemas.
  • Visualiza las Relaciones: Permite ver claramente cómo las diferentes causas interactúan y afectan el resultado final.
  • Promueve el Pensamiento Crítico: Estimula el análisis profundo y la búsqueda de soluciones efectivas.
  • Previene Problemas Futuros: Al identificar y abordar las causas raíz, se reducen las posibilidades de que los mismos problemas vuelvan a surgir.
Si quieres tener más información. Desde esta página puedes encontrar una template para trabajar este modelo:

martes, 17 de agosto de 2021

TidyVerse y las condiciones del Tidy data que nos hacen la vida más fácil

ehhhh  (se pronuncia taidivers)
Hace ya varios año se dio un movimiento en la comunidad de R para que se utilizaran una serie de paquetes para unificar estos y que fuera más consistente el análisis de datos.
De aquí se crearon varios paquete cad auno con una funcionalidad diferente.
Para hacerlo más a menos aquí tienes un video directo al grano. 

Datos Tidy 

Ya sea en R, como en Python como en una hoja de cáculo tipo Google Drive o Excel antes de empezar a analizar nuestros datos tenemos que conseguir que los datos cumplan una determinada extructura. en resumen una forma de tabla o tabular. De no ser así algo puede salir mal y darnos unos resultados que los programas no van a comprender.
Condiciones que deben cumplir los datos Tidy
  1. - Cada columna es nua variable
  2. - Cada fila es una observación
  3. - Cada celda es un valor
Cumpliendo estos tres mmmm valores universales, podemos saber que estamos en el buen camino. Aunque muchas veces nos va a tocar transformar los datos para que tengan esta forma.

Paquete que nos ayudan a transformar datos para cumplir con el Data Tidy

Si usamos R, tenemos un paquete que se llama TidyR con su cheetshet
Si usamos Python, pandas cumple nuestro papel. Y para muestra esta cheetshet de pandas para data wrangling
Y para terminar un éxito de ventas de cuando esa joven de Tabular Bells (o algo así)

lunes, 9 de agosto de 2021

How-to Pandas. Notas sobre el curso de iniciación a Pandas de Kaggle

Hace unas semanas empecé un curso para repasar pandas y me topé con un curso muy claro y que explica  a muy bajo nivel como funciona así que para principiantes viene al pelo.
Una vez terminado tienes incluso un certificado de realización por Kaggle al que puedes acceder

Pero vamos a empezar por el principio:

Qué vamos a aprender en este curso de Kaggle de Python
  1. Creating, Reading and Writing
  2. Indexing, Selecting & Assigning
  3. Summary Functions and Maps
  4. Grouping and Sorting
  5. Data Types and Missing Values
  6. Renaming and Combining

El curso en cuestión es este y en una semana puedes tenerlo terminado si.

https://www.kaggle.com/learn/pandas

Para ayudar te dejo mi chileta

 Chuleta sobre tipos de datos :

 DataFrame = tabla
Series = lista
Por lo tanto un DataFrame es un conjunto de listas.

Leer un archivo csv:

wine_reviews = pd.read_csv("../input/wine-reviews/wine2020.csv")

Expecificando la columna a indexar

wine_reviews = pd.read_csv("../input/wine-reviews/wine2020.csv", index_col=0)

Cambiando la columna a indexar

reviews.set_index("title")


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) 

martes, 19 de mayo de 2020

Exploratory Data Analysis- EDA- en Python para vagos con pandas_profiling

A la hora de analizar datos, sobre todo si nos enfrentamos a un dataset nuevo nos podemos tirar varias horas intentando comprender que calidad tienen los datos.Para eso siempre bueno empezar nuestro análisis por EDA para saber que datos debemos transformar o la calidad de los mismos

Qué es EDA

EDA responde al nombre de Exploratory Data Analysis.EDA es especialmente importante para saber si tenemos valores nulos, si puede haber errores en nuestros datos o incluso comprender la distribución de estos por si debemos normalizarla para aplicarle determinados test no paramétricos o paramétricos. Así vamos aprender de nuestro dataset en plan primera cita.


via GIPHY

Echándole un vistazo a nuestro dataset

Primeras impresiones

Qué pinta tiene por delante

df. head()

Y que tal se ve por detrás

df.tail()

Qué tamano tiene

df.shape()
df.columns

Eso es todo por ahora de un primer vistazo. Pasemos a las preguntas
Pasamos a las preguntas

Cómo te describes

df.describe
df.dtypes

Y en fin, nos pdría dar varias horas con esto.

Vale, que es perder un poco la magía, pero que tal si tuvieramos un informe completo de todas estas preguntas y muchas más, así nos hacemos a la idea de que preguntar despues, como una app de esas de ligoteo, donde además vamos a poder ver los gráficos de muchas de estas cosas.

Vale, pues eso ya lo tenemos en Python y lo podemos usar con pandas. Os presento a pandas-profiling

Cómo se usa pandas profiling


Pues lo primero que debemos hacer es instalarlo
Y todo lo que vamos a tener que hacer es 
1. Instalar la libreria
pip install pandas-profiling
2. Importar ambas librerías 
  • import pandas as pd
  • import pandas_profiling
3. Convertir los datos a un dataframe

4.Ponerle un título a nuestro informe

5. Exportar el informe al formato que queramos (por ahora sí o sí en html)

6. Ya tenemos nuestor informe sin tener que programar todo la anterior.

Qué incluye el informe de pandas profiling



  • Inferencia de tipos: detecta los tipos de columnas en un marco de datos.
  • Elementos esenciales: tipo, valores únicos, valores faltantes
  • Estadísticas cuantiles como valor mínimo, Q1, mediana, Q3, máximo, rango, rango intercuartil
  • Estadísticas descriptivas como media, modo, desviación estándar, suma, desviación absoluta media, coeficiente de variación, curtosis, asimetría
  • Valores más frecuentes
  • Histograma
  • Resaltado de correlaciones de variables altamente correlacionadas, matrices de Spearman, Pearson y Kendall
  • Valores perdidos matriz, recuento, mapa de calor y dendrograma de valores perdidos
  • El análisis de texto aprende sobre categorías (mayúsculas, espacio), guiones (latín, cirílico) y bloques (ASCII) de datos de texto.
  • El análisis de archivos e imágenes extrae tamaños de archivos, fechas y dimensiones de creación y escanea en busca de imágenes truncadas o aquellas que contienen información EXIF.

Así que nada, ahora ya nos ha sobrado tiempo para hacer las cosas importante de nuestra vida.

via GIPHY


Este informe nos ahorra mucho tiempo.
Si quieres saber más sobre él , aquí tienes la documentación

Documentación de la librería

https://pypi.org/project/pandas-profiling/


lunes, 11 de mayo de 2020

Eligiendo como visualizar el análisis de datos en 🐍 Python para EDA usando pandas

Hace unos días, me di cuenta que necesitaba una forma de visualizar datos para Adhoc análisis y EDA.
Siempre he sido bastante reacia a perder el tiempo haciendo gráficos en matplotlib porque me parece muy complicado el disenno.

Pero, tras haber perdido parte del código que usaba en Python para hacer todo más rápido por no subirlo a Github, me he dado cuenta de que necesito esto.


Primero vamos a ver que tipo de librerias tenemos en Python que podemos usar en Jupyter Notebook

  • matplotlib
  • Seaborn
  • bokeh
  • plotly
  • cufflinks (plotly + pandas)


matplotlib

 Es la libreria por antonomasia para usar con Pandas.

Seaborn

Basada en matplotlib tiene automatizados muchos gráficos para hacerlos de forma más sencilla. La parte negativa es que no es interactiva

bokeh

La sintaxis y el modelo, no tiene nada que ver con las dos anteriores. Así que hay que aprenderla desde cero. Como puntos destacados puedes exportarse para usarse con JS y es interactiva, eso significa que puedes hacer dashboards con los que se pueden seleccionar variables por ejemplo.

plotly

Es una librería propietaria, pero permite hacer muchos gráficos. Tiene buena usabilidad, así que no necesitas aprender mucho código y la documentación es muy buena. Hay una versión de pago, así que no es totalmente libre. Sería como el debian de las librerias de visualización de datos en Python.