Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Pipelines de procesamiento para variables numéricas

14/25
Recursos

Aportes 21

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

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 $$

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

Aqui un Link donde explican el escalamiento de datos.

Para profundizar!!

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

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

el Zscore tambien te lo puedes topar como StandartScaler.

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.

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

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

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

Pipelines de procesamiento

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())

Excelente profesor!!!

Distribución normal estándar

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

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.