Translate

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.