4 votos

Diferencia entre transformación logarítmica y normalización

¿Existe alguna diferencia entre la transformación logarítmica y la normalización de los datos antes de someterlos a un algoritmo de aprendizaje automático (por ejemplo, k-means clustering)?

Parece que un enfoque común en el preprocesamiento de los algoritmos de agrupación consiste en eliminar primero la asimetría de los datos mediante la transformación logarítmica y, a continuación, realizar la normalización. Mi pregunta es, ¿no consiguen ambos métodos el mismo efecto cuando se trata de desestabilizar los datos? Es decir, ambos parecen transformar los datos en una distribución normal.

Entiendo que la normalización obliga a una media cero y una varianza unitaria, pero ¿es realmente necesario aplicar ambos métodos a un mismo conjunto de datos?

¿En qué se diferencian estas dos técnicas de preprocesamiento?

9voto

Estos dos métodos no transforman los datos en una distribución normal. Y, son muy diferentes.

  • La normalización consiste en hacer que la característica tenga media cero y varianza unitaria. Por ejemplo, si la característica está uniformemente distribuida, también lo estará. Es sólo una transformación lineal, y no disminuye el sesgo (es decir, la asimetría, que ya es el tercer momento normalizado).
  • La transformación logarítmica disminuye la asimetría en algunas distribuciones, especialmente con valores atípicos grandes. Pero puede no ser tan útil si la distribución original no es asimétrica. Además, la transformación logarítmica puede no aplicarse a algunos casos (valores negativos), pero la normalización siempre es aplicable (excepto $\sigma=0$ ).

El objetivo de apilarlas podría ser la normalización de todas las características tras el proceso de generación de características.

9voto

  • La normalización no cambia el sesgo de la distribución. Lo que hace es transformar los valores para que tenga $\mu=0$ y $\sigma^2=1$ . La forma real de la distribución no cambia.

  • Por otra parte, la transformación logarítmica cambia el sesgo de la distribución y es útil cuando se trata de valores que tienen una distribución de cola derecha.


Considere el siguiente ejemplo.

set.seed(0)
X <- rlnorm(1000)
hist(X)

enter image description here

Se puede ver que X tiene una distribución sesgada (larga cola derecha).

Ahora hacemos dos transformaciones como sigue:

Z <- (X-mean(X))/sd(X)
L <- log(X)
par(mfrow = c(1,2))
hist(Z)
hist(L)

enter image description here

Como puede ver, la normalización de X (que es Z en este ejemplo) tiene una forma de distribución similar a la de X. La transformación logarítmica de X (que es L en este ejemplo) se transforma ahora de forma que elimina su larga cola derecha.

Obsérvese que X en el ejemplo anterior tiene distribución lognormal X <- rlnorm(1000) por eso la variable transformada logarítmicamente parece distribuida normalmente. Si X se distribuye, digamos, exponencialmente, la variable log-transformada resultante puede no ser normal, como se muestra a continuación.

set.seed(0)
X <- rexp(1000)
par(mfrow = c(1,1))
hist(X)

enter image description here

Z <- (X-mean(X))/sd(X)
L <- log(X)
par(mfrow = c(1,2))
hist(Z)
hist(L)

enter image description here

Puede ver que la distribución de X transformada logarítmicamente (denotada por L) ahora no tiene cola derecha, pero sigue sin parecerse a una distribución normal porque sigue siendo sesgada. La transformación logarítmica no siempre hace que la distribución sea normal.


i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X