No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Pipelines de procesamiento para variables numéricas

14/25
Recursos

Aportes 37

Preguntas 17

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Normalización

La normalización es una técnica que a menudo se aplica como parte de la preparación de datos para el aprendizaje automático. El objetivo de la normalización es cambiar los valores de las columnas numéricas en el conjunto de datos para usar una escala común, sin distorsionar las diferencias en los rangos de valores ni perder información. La normalización también es necesaria para que algunos algoritmos modelen los datos correctamente.
.
Por ejemplo, suponga que su conjunto de datos de entrada contiene una columna con valores que van de 0 a 1 y otra columna con valores que van de 10,000 a 100,000. La gran diferencia en la escala de los números podría causar problemas al intentar combinar los valores como características durante el modelado.
.
La normalización evita estos problemas al crear nuevos valores que mantienen la distribución general y las proporciones en los datos de origen, mientras mantienen los valores dentro de una escala aplicada en todas las columnas numéricas utilizadas en el modelo.
.

Tenemos varias opciones para transformar datos numéricos:

  • Cambiar todos los valores a una escala de 0 a 1 o transformar los valores representándolos como rangos de percentiles en lugar de valores absolutos.
  • Aplicar la normalización a una sola columna o a varias columnas en el mismo conjunto de datos.
  • Si necesita repetir el experimento o aplicar los mismos pasos de normalización a otros datos, puede guardar los pasos como una transformación de normalización y aplicarlos a otros conjuntos de datos que tengan el mismo esquema.

Nota importante: Algunos algoritmos requieren que los datos se normalicen antes de entrenar un modelo. Otros algoritmos realizan su propia normalización o escalado de datos.

Normalización lineal

Algunos de los tipos:

.

  • Zscore : convierte todos los valores en una puntuación z. Los valores de la columna se transforman mediante la siguiente fórmula:

La media y la desviación estándar se calculan para cada columna por separado. Se utiliza la desviación estándar de la población.

.

  • MinMax : el normalizador min-max cambia la escala linealmente cada característica al intervalo [0,1]. El cambio de escala al intervalo [0,1] se realiza cambiando los valores de cada característica para que el valor mínimo sea 0, y luego dividiendo por el nuevo valor máximo (que es la diferencia entre los valores máximo y mínimo originales). Los valores de la columna se transforman mediante la siguiente fórmula:

    .

¿Cuándo usar la normalización lineal?

  • En datos simétricos o en datos uniformemente distribuidos.

Una pequeña definición de pipeline que encontré en un libro de Ingeniería de datos con Python:

La combinación de una base de datos transaccional, un lenguaje de programación, un motor de procesamiento y un almacén de datos da como resultado un pipeline. - Data Engineering with Python. Packtpub

Una **pipeline **de datos es una construcción lógica que representa un proceso dividido en fases.

Escalamiento lineal

Técnica para normalizar los datos usando una escala común en las variables de interés antes de modelar o desarrollar un aprendizaje automático. Transforma el valor de cada dato para un rango determinado. Normalmente [-1,1]

  • Min-Max: Transforma cada dato (X) a un valor normalizado ($X_s$) usando el valor mínimo y máximo de cada variable

$$ X_s = (2X-min-max)/(max-min) $$

  • Clipping: Corta la distribución de los datos entre dos valores limite. El valor de cada dato fuera de los limites colapsa al valor del limite mas cercano.

    • Winzoriding: Usando percentiles específicos de limites.
  • Z-Score: Se determina usando medidas de tendencia central y de dispersión.

$$ X_s = ( X - Promedio) / Desv. Stand $$

Resumen de clase:
Todo lo anterior visto sirve para identificar el uso de estadística descriptiva en el análisis de exploración de datos.
El análisis exploratorio de datos no se reduce a la visto en estadística descriptiva.
En esta sección se enfoca en el uso de estadística descriptiva para el procesamiento de datos pre modelo predictivo.
.
Escalamiento o normalización lineal
¿Qué es?
La normalización es una técnica que a menudo se aplica como parte de la preparación de datos para el aprendizaje automático.
¿En qué consiste?
En cambiar los valores de las columnas numéricas en el conjunto de datos para usar una escala común, sin distorsionar las diferencias en los rangos de valores ni perder información.
¿Por qué usarlos?
Los modelos de machine Learning son eficientes en el rango [-1,1]. Si los datos no se encuentran en ese rango debes transformarlos mediante el escalamiento o normalización para que los algoritmos modelen los datos correctamente.
¿Cuándo usarlos?
Data simétrica o uniformemente distribuida. Un ejemplo de ellos es la distribución Gaussiana.
Usando el box-splot y el histograma podremos saber la distribución de la data.
.
Entre los tipos más importantes tenemos:

  • Min-max
  • Clipping
  • Winsorizing
  • Z-Score

Basicamente Pipeline, como su traduccion al castellano es Tuberia, donde dentro de esta tuberia vemos los diferentes subprocesos de DS
Dejo esta imagen y un link donde explica Pipeline para DS, esta en ingles Pipeline

Z- Score en probabilidad se denomina Variable normal estandarizada. Se transforma la distribucion a una distribucion estandarizada y para cada valor de Z se encuentran tabulados los valores de la probabilidad (Estos valores salen de la integracion de la funcion de densidad de una distribucion normal y la suma del area bajo la curva).
Por si quieren entender mejor el concepto, les recomiendo este video:

https://www.youtube.com/watch?v=_gyrWRyh6Qg

el Zscore tambien te lo puedes topar como StandartScaler.

¿Qué es una Pipeline de Datos?

  • Una pipeline de datos es una construcción lógica que representa un proceso dividido en fases. Las pipelines de datos se caracterizan por definir el conjunto de pasos o fases y las tecnologías involucradas en un proceso de movimiento o procesamiento de datos.

  • Las pipelines de datos son necesarias ya que no debemos analizar los datos en los mismos sistemas donde se crean. El proceso de analítica es costoso computacionalmente, por lo que se separa para evitar perjudicar el rendimiento del servicio. De esta forma, tenemos sistemas OLTP, encargados de capturar y crear datos, y sistemas OLAP, encargados de analizar los datos.

  • Por ejemplo, un sistema OLTP puede ser un CRM, mientras que un sistema OLAP será un Data Warehouse.

Ejemplo de Pipeline de Datos

  • Como ejemplo, podemos pensar en las APIs de ingesta para obtener los datos. Esta API es el punto de partida, y podría enviar los datos a un topic de Apache Kafka. Kafka actúa aquí como un buffer para el siguiente paso.

  • Después, una tecnología de procesamiento, que puede ser streaming o batch, leerá los datos de nuestro buffer. Por ejemplo, Apache Spark realizará analítica sobre estos datos.

  • Por último, la pipeline termina con el resultado almacenado de forma persistente en una base de datos como HBase o en un sistema de ficheros distribuido como HDFS.

  • Una vez que nuestros datos están persistidos se encuentran listos para ser usados. Podríamos implementar una aplicación web que muestra estos datos en un dashboard como Grafana o consultarlos con herramientas de visualización y BI.

  • Los movimientos de datos entre estos sistemas forman pipelines de datos y son

Un aporte la formula que comparte el profe el rango será de [-1, 1] pero la formula que siempre se encuentra la de x-min/max-min nos dará un rango de [0,1].

Aqui un Link donde explican el escalamiento de datos.

Para profundizar!!

Pipelines de procesamiento de datos númericos

Los **Pipelines de procesamiento de datos númericos **son secuencias de etapas o pasos que se utilizan para preparar y transformar datos numéricos para su análisis. Estos pipelines suelen incluir tareas como la limpieza de datos, la imputación de valores faltantes, la normalización y la selección de características.

Algunos ejemplos de tareas comunes que se pueden incluir en uin pipeline de procesamiento de datos númericos son:

  • Limpieza de datos: eliminación de valores atípicos, eliminación de valores faltantes, correción de errores de entrada de datos.
  • Imputación de valores faltantes: reemplazo de calores faltantes con estimaciones basadas en otros datros disponibles.
  • Normalización: tranformación de datos para que estén en la misma escala.
  • Selección de características: selección de l;as variables más relevantes para el análisis.
  • Reducción de dimendionalidad: reducción del número de variables mediante la eliminación de redundancias o la combinación de variables.
  • Discretización: tranformación de variables continuas en categorías discretas.

Normalización

La normalización es un proceso de transformación de datos que se utiliza para ajutar los valores de diferentes variables para que estén en la misma escala. Esto se hace a menudo para poder comparar y analizar los datos de manera más sencilla.

Hay varias formas de normalizar los datos, dependiendo de la distribución y el rango de los datos originales. Algunas de las formas más comunes de normalización incluyen:

  • Min-Max normalización: esta técnica escala los datos para que el valor mínimo sea 0 y el valor máaximo sea1. Se calcula restando el valor mínimo de cada punto de datos y luego dividiendo el resultado por la diferencia entre el valor máximo y el valor mínimo.
  • Z-score normalización: esta técnica escala los datos de tal manera que la media de los datos sea 0 y la desviación estándar sea 1. Se calcula restando la media de cada punto de datos y luego dividiendo el resultado por la deviación estándar.
  • Decimal scaling: esta técnica escala los datos multiplicando cada valor por una potencia de 10 para ajustar el rango de los datos.
  • Winsorizing: es un proceso de transformación de datos que se utiliza para limitar o “truncar” los valores extremos de un conjunto de datos. Esto se hace para reducir el impacto de valores atípicos o extremos en el análisis de datos. Para winsorizar un conjunto de datos, primero se calcula el percentil de los datos. Los valores por debajo del percentil más bajo se reemplazan por el valor del percentil más bajo, y los valores por encima del percentil más alto se reemplazan por el valor del percentil más alto. El proceso de winsorización se puede aplicar a una sola variable o a varias variables al mismo tiempo.
  • Clipping: Se utiliza también para limitar los valores extremos de un conjunto de datos. Es similar al proceso de Winsorizing, pero en lugar de reemplazar los valores extremos con el percentil más bajo o más alto, simplemente se eliminan. Para aplicar el clipping a un conjunto de datos, primero se calcula el percentil más bajo y el percentil más alto. Luego, se eliminan todos los valores por debajo del percentil más bajo y todos los valores por encima del percentil más alto.

Encontré este editor de ecuaciones online, me ha servido mucho para generar las ecuaciones en imagen y luego bajarlas para integrarlas en mis apuntes, espero le sirva a alguien:

https://www.codecogs.com/latex/eqneditor.php?lang=es-es

Pipelines de procesamiento para variables numéricas

Escalamiento lineal

PDF de La técnica de escalamiento lineal por intervalos: una propuesta de estandarización aplicada a la medición de niveles de bienestar social

¿Por qué usarlo? -> Porque los modelos de machine learning son eficientes en el rango [-1, 1].

¿Hay diferentes tipos? -> maxmin, Clipping, Z-score, Winsorizing, más información en la Documentación de Normalization de Google Developers

¿Cuándo usarlos? -> cuando tenemos data simétrica o uniformemente distribuida

Fórmula usando el escalamiento de min-max -> Tenemos X y debemos llegar a Xs, entonces: Xs = (2X - min - max) / (max- min)

Un escalamiento lineal es una función lineal que simplemente transforma unos números en otros

Hola les comparto este vídeo, donde habla mas acerca de la normalizacion:
https://www.youtube.com/watch?v=P1qc-pqhJGE

Pipelines de procesamiento

Es necesario normalizar los datos antes de pasarlos por un modelo de machine learning, ya que estos son óptimos cuando los atributos están siempre en las mismas dimensiones.

Min-Max convirtiendo todos los valores de X pertenecientes al rango [2,4] en valores entre [-1,1]

Tambien es importante saber que hacer con los datos faltantes, creo que tenemos 3 opciones:

  1. Eliminar todo el atributo del dato faltante.
  2. Eliminar las filas con el atributo faltante.
  3. Rellenar los valores faltantes como por ejemplo con la mediana.

Escalamiento lineal (Normalización)

Llamamos pipeline a una secuencia de procesamiento de datos que permite optimizar mi flujo de trabajo. Estos son comunes en machine learning pues no solo permiten la manipulación y transformación de multiples datos, sino que además tenemos una alta reducción en código. Este consiste en encadenar una serie de estimadores, que me permiten ir trasformando un conjunto de datos en un proceso comprendido por varias etapas de manera secuencial, donde cada componente del pipeline toma los datos, los trasforma y su salida va a la siguiente componente del pipeline, dandose esto hasta pasar por todas las componentes de éste.

Ejemplos de Normalización (escalado simple , min-max, z-score:

df=pd.DataFrame({'lenght':[168.8, 168.8, 180.0], 'widht':[64.1, 64.1, 65.5], 'height':[48.8, 48.8, 52.4]})

df['lenght'] = df['lenght']/df['lenght'].max()

df['lenght']=(df['lenght']-df['lenght'].min())/(df['lenght'].max()-df['lenght'].min())

df['lenght']= (df['lenght']-df['lenght'].mean())/(df['lenght'].std())
  • Pipelines de procesamiento para variables numéricas

    ¿Qué es Pipelines de procesamiento para variables numéricas?

    La normalización es un proceso se utiliza pre machin learning para la preparación de los datos. El objetivo es cambiar las columnas numéricas del mismo rango en conjunto de datos con una escala común.

    Escalamiento lineal

    ¿Por qué emplear?

    Modelos de machine Leaning efiencientes en el

    • Rango estándar [ -1, 1 ]

    ¿Hay diferentes tipos?

    • max - min, Clipping, Z-score, Winsorizing, etc.

    ¿Cuándo utilizarlos?

    • Cuando los datos tienen una distribución parecida.
    • O los datos son simétricos.

Información resumida de esta clase
#EstudiantesDePlatzi

  • El escalamiento lineal es normalizar los datos antes de pasarlos a un modelo de machine Learning, esto hace que el modelo sea eficiento o mejor

  • La gran mayoría de los modelos de machine learning son eficientes en el rango de -1 a 1, es decir, lo ideal seria que los datos se encuentren dentro de estos límites

  • Existen diferentes tipos de escalamiento lineal: Max - Min, Clipping, Z-score, Winsorizing

  • La ecuación del escalamiento Max - Min es el valor de los datos por dos menos el Min, menos el Max, todo sobre la resta del Max y el Min

  • El Clipping es muy utilizado, pero poco recomendado, ya que fuerza los datos a que queden en los extremos de la distribución

  • Estos límites o extremos de la distribución pueden ser definidos por los percentiles y cuando esto es así, el escalamiento pasa a ser llamado Winsorizing

  • El método o escalamiento z-Score está basado en la definición del promedio y la desviación estándar

  • Cuando utilizamos el escalamiento Z-Score, transformamos los datos a una distribución gaussiana con el promedio en cero y con una desviación estándar en uno, así logramos que los datos se ajusten al rango que necesitamos para el modelo

  • Un escalamiento lineal es una función lineal que transforma unos datos en otros

Procesamiento de Datos

  • Una gran parte de los algoritmos que aplicamos en el procesamiento de datos son mucho más eficientes cuando trabajamos con datos que se ecuentran en el rango de -1 a 1
  • Hablemos primero del escalamiento de datos simétricos, es decir escalamiento lineal; tenemos:
    • Max-min: Es cale los datos con relación a su rango; matemáticamente: Xs = (2x-min-max)/(max-min)
    • Clipping: Consta de aoptar los límites inferior y superior y colapsar los valores atipicos a estos límites
    • Winzorizing: Es un clipping con uso de percentiles
    • Z-score: Es el escalamiento más usado en este tipo de datos, agrupa los datos alrededor de la media y los distribuye en una dasitancia de sigma: Xs = (X - mu)/sigma

El Z-Score tambien se le conoce como Dristribución normal estadart. https://www.superprof.es/apuntes/escolar/matematicas/probabilidades/distribucion-normal/distribucion-normal-estandar.html
De diez esta clase, me aclaró muchos conceptos 😃.

¿Sabías que en Data Science usamos algo llamado *pipelines* para preparar los datos antes de analizarlos? 🌟 Un *pipeline* es como una receta que sigue pasos muy específicos para transformar y limpiar los datos numéricos. Esto nos ayuda a trabajar de manera más rápida y sin errores, especialmente cuando tenemos miles de datos. ¡Es una forma súper eficiente de asegurarnos que todos los datos estén listos para entrar en acción! 🚀

Es interesante el uso de normalizacion para empezar con la transformacion de machine learning. No sabia de ese uso. Ahora si estoy listo para aprender mas.

z-score no se convierte en una distribucion entre -1 y 1. La desviacion estandar pasa a ser 1

14. Pipelines de procesamiento para variables numéricas

Escalamiento lineal

¿Por qué usarlos?

→ Modelos de machine learning eficientes en el rango [-1,1]

¿Hay diferentes tipos?

→ max-min, Clipping, Z-score, Winsorizing, etc.

¿Cuándo usarlos?

→ Data simétrica o uniformemente distribuida.

Ufff esta clase me encanto

Buena clase.

Hola Plazti: en este link demuestro de donde viene la fórmula de max-min para los curiosos matemáticos como yo, un abrazo

Les super recomiendo este video para entender mejor el Z-score:

https://www.youtube.com/watch?v=2tuBREK_mgE

Excelente profesor!!!

Distribución normal estándar