Transformaciones No Lineales para Datos Sesgados en Machine Learning
Resumen
¿Qué hacer cuando la distribución de datos no es simétrica?
Cuando trabajamos con datos en machine learning, es común encontrarnos con distribuciones que no son simétricas y que, por tanto, no se benefician de técnicas de escalamiento lineal, como el uso de la media y la desviación estándar. En estos casos, debemos transformar los datos para que adquieran una distribución simétrica antes de aplicar cualquier escalamiento lineal.
¿Por qué utilizar transformaciones no lineales?
Las transformaciones no lineales son cruciales para manejar datos que presentan un fuerte sesgo. Estas transformaciones nos permiten modificar la distribución de manera que se vuelva más homogénea o simétrica, lo cual es esencial antes de aplicar escalamiento lineal.
Existen diferentes tipos de transformaciones no lineales que se pueden aplicar, entre las cuales se incluyen:
Logaritmos
Funciones sigmoides
Polinomios de grado mayor a uno
¿Cuándo aplicar las transformaciones?
Las transformaciones no lineales deben aplicarse justo antes de escalar linealmente los datos. Esto asegura que, al momento de realizar el escalamiento, la distribución de los datos ya sea simétrica.
¿Cómo afectan las funciones no lineales la distribución de datos?
Los efectos de las transformaciones no lineales son visibles al observar la función y cómo transforma valores de manera no homogénea.
Ejemplo: Tangente hiperbólica
Consideremos una distribución de datos altamente sesgada y su transformación mediante la tangente hiperbólica. La tangente hiperbólica transformará los datos original:
Valores pequeños -> Intervalo más ancho
Valores grandes -> Intervalo más delgado
Esto ayuda a reducir el sesgo, ya que los datos que estaban distantes ahora se mapean en posiciones más cercanas entre sí.
La tangente hiperbólica tiene carácter de simetrizar la distribución al expandir rangos cercanos al cero y contraer outliers. Puedes visualizar este efecto mediante un gráfico, donde verás que los valores pequeños se extienden sobre un rango más amplio comparado con los valores grandes.
Ejemplo: Funciones raíz y polinómicas
Raíz cuadrada: Esta función es útil porque los datos cercanos al origen son mapeados en intervalos más pequeños, reduciendo el impacto de valores extremos (outliers).
Polinomios: Podemos usar funciones polinómicas de la forma ( x^n ) con ( n ) siendo un número positivo. Dependiendo del valor de ( n ), la transformación de la distribución variará, y podemos adaptar el mapeo según nuestras necesidades de simetría.
¿Cómo elegir la mejor transformación?
No existe una única respuesta correcta para todas las situaciones. Las características de tus datos y el contexto del problema determinan la función más adecuada. Sin embargo, algunas funciones ampliamente utilizadas incluyen la tangente hiperbólica y las funciones sigmoides debido a su capacidad de expandir rangos bajos y reducir la influencia de outliers.
Implementar estas transformaciones y visualizar sus efectos es esencial para comprender plenamente su impacto. Pronto, realizaremos un ejercicio práctico utilizando Python para aplicar estas transformaciones y observar visualmente la mejoría en la distribución de nuestros datos.
En el caso donde haya datos fuertemente sesgados y no simétricos.
.
Algunos tipos:
Logística: los valores de la columna se transforman mediante la siguiente fórmula:
!log
.
LogNormal: esta opción convierte todos los valores a una escala logarítmica normal. Los valores1 de la columna se transforman mediante la siguiente fórmula:
!lognormal
Aquí μ y σ son los parámetros de la distribución, calculados empíricamente a partir de los datos como estimaciones de máxima verosimilitud, para cada columna por separado.
.
TanH: todos los valores se convierten a una tangente hiperbólica. Los valores de la columna se transforman mediante la siguiente fórmula:
!Tha
.
¿Cuándo usarlos?
Justo antes de aplicar el escalamiento lineal, las transformaciones no lineales solo son para que nuestros datos queden lineales para luego aplicar la normalización lineal. Siempre se debe aplicar la normalización lineal.
Excelente aporte
Muy importante el aporte, especialmente el de logística, ese principio es el que permite trabajar con variables categóricas dependientes, por ejemplo cual es la probabilidad de que un evento ocurra (1= que si ocurra y 0= que no ocurra)
Está muy completo todo lo que explica en el video, gracias por compartirlo! :D
Está muy bueno el vídeo. ¡gracias por compartir!
no olvidemos que uno de las funciones de activacion en las redes neuronales es tgh(x), un dato para no olvidar!
Oh no! Nunca olvidar ello ;v
Si te sientes muy abrumad@ por todo este nuevo conocimiento como yo y los increíbles aportes de los compañer@s te hacen creer que eres tont@. Recuerda que los comentarios suelen estar sesgados ya que la mayoría de personas que también se sentía como tú no comento nada por miedo o pena.
Te animo a transformar los comentarios en una forma más lineal.
Y recuerda no estás sol@, da un paso a la vez y si te pierdes siempre puedes volver a intentarlo.
Hola compañero. Te recomiendo intentar replicar poco a poco por tu cuenta los ejercicios/teoria explicada. Y lejos de abrumarte con la info de los aportes usalo como herramienta adicional y un mega plus que puede contribuir a nuestro aprendizaje.
#NuncaParesDeAprender.
¡éxito!
jajajaja 🤭🤭🤭🤭🤭😅😆😂🤣🤣🤣🤣🤣🤣🤣
Esta clase (y muchas otras) muestran cómo las matemáticas si funcionan haciendo que, conceptos tan complejos (para mi), sean tan fáciles. No es precisamente un aporte pero muchas felicitaciones por tan buen contenido.
En español no encontré mucha información al respecto en Google.
En inglés si aparece mucha, pueden buscar este tema como Power Transformers.
Aclarar que x^(1/2) no es un polinomio (ni monomio). Para considerarse polinomio el exponente debe pertenecer a los números naturales.
Me parece fasciante como se puede utilizar la funcion xs = tanh x para transformar los datos.
Les dejo una grafica en Desmos para que puedan verlo
Visualizacion tanh x
x^(1/2) no es un polinomio
Es un Monomio
Vale por la aclaración, le da un nuevo sentido al contenido.
Transformación no lineal
Se aplican estas transformaciones a datos fuertemente sesgados, no simétricos. Se usan antes de escalamientos lineales.
Logarítmica
Sigmoide
Polinomial
Trigonométrica
entiendo el concepto de normalizar, lo que no entiendo es cómo eso no afecta y al contrario ayuda al modelo ?
No lo afecta porque simplemente es un cambio de escala el que se aplica, no se distorsionan los datos.
Hacer esto permite poder trabajar con los datos en una misma escala.
Por ejemplo: Si en un modelo tenés temperatura y precipitaciones como variables, y querés hacer operaciones numéricas entre ellas, sin escalar te deberías operar con 2 unidades distintas: C° y mm. Los números entre estas 2 unidades son muy distintos. Entonces podes pasar ambas variables a un intervalo entre 0 y 1 y ahí sí tener ambas a la misma escala y poder operar correctamente entre ellas.
Qué buena respuesta. Yo tenía la misma duda.
estas serian el código en latex:
Logística: $$ x_s = \frac{1}{1+e^{-x}} $$
Tan H: $$ p(k|x;\Theta) = \frac{[E(Y|x)]^k*e^{-E(Y|x)}}{k!} $$
Cómo determinar cuál es el mejor método para hacer la transformación no lineal? existe alguna prueba estadística para ello? gracias
AAAH esto es una belleza, este tema me hizo acordar unas clases de ingeniería electrónica, aquí les dejos un súper canal de youtube con este tema. Les recomiendo ese canal en ingles y la pagina de los creadores
Como saber que valor aplicar al parámetro "a" para la calibración de datos con la tangente hiperbólica ?,
hay un estándar o tenemos que ir probando que tan calibrado queremos los datos?
Resumen de la clase
Cuando la distribución de datos no es simétrica sino sesgada uso la transformación no lineal.
Esto con el fin de tomar los datos con una distribución no simétrica y se transforman en una distribución que si es simétrica.
Después de eso se aplican los escaladores lineales.
Tipos de transformación no lineal:
• Logaritmos
• Sigmoides
• Polinomiales
• Otras funciones no lineales.
Transformación tangente hiperbólica
La fórmula es:
Donde a es el parámetro de sinterización, toda transformación no lineal tiene ese parámetro.
Dependiendo de los valores de a se puede regular que tan abrupto o suave puede ser el descenso de la función cuando pasa por el punto 0.
Con esto se puede calibrar que tan simétricos se quiere que estén los datos después de pasar por la función.
Muy buena clase! creo que por primera vez entiendo bien el concepto de transformación no lineal y cuando y por qué utilizarla. Ahora a ponerlo en práctica :D
Esto al final del día viene muy de la mano con la Geometría Análítica y también estamos hablando del Escalado)
Cuando se tienen distribuciones no simétricas, antes de aplicarles algún método de escalamiento lineal, hay que aplicar una transformación no lineal.