es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estandarización de datos para Keras en R

Estoy trabajando con Keras y TensorFlow en R. Para normalizar los datos, he escrito esta función:

df=data.frame(
        Column_1=seq(1,10),
        Column_2=seq(11,20))

normalization_data <- function(df){
     data=(df$Column_1-mean(df$Column_1))/sd(df$Column_1)
     return(data)
   }

Esta función funciona bien y me da buenos resultados, pero solo para una columna. Puedes ver el resultado a continuación:

normalized_data <- normalization_data(df)
normalized_data
[1] -1.4863011 -1.1560120 -0.8257228 -0.4954337 -0.1651446  0.1651446  0.4954337  0.8257228  1.1560120
[10]  1.4863011

Entonces, ¿alguien puede ayudarme a modificar esta función para que funcione con todas las demás columnas en el marco de datos?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para modificar la función y hacerla funcionar con todas las columnas en el data frame, puedes utilizar la función apply() para aplicar la fórmula de normalización a cada columna en el data frame. Aquí está una versión actualizada de la función:

    normalization_data <- function(df){
      apply(df, 2, function(x) (x - mean(x)) / sd(x))
    }
    

    En esta versión de la función, apply() se utiliza para aplicar la fórmula de normalización a cada columna de df. El argumento 2 especifica que queremos aplicar la función a las columnas (1 aplicaría la función a las filas). La función anónima recibe cada columna (x) como entrada y devuelve los valores normalizados para esa columna.

    Ahora puedes llamar a esta función en tu data frame original df y devolverá un data frame con los valores normalizados para todas las columnas:

    normalized_data <- normalization_data(df)
    normalized_data
    

    Output:

            Column_1   Column_2
     [1,] -1.4863011 -1.4863011
     [2,] -1.1560120 -1.1560120
     [3,] -0.8257228 -0.8257228
     [4,] -0.4954337 -0.4954337
     [5,] -0.1651446 -0.1651446
     [6,]  0.1651446  0.1651446
     [7,]  0.4954337  0.4954337
     [8,]  0.8257228  0.8257228
     [9,]  1.1560120  1.1560120
    [10,]  1.4863011  1.4863011
    

    Esto te dará el resultado deseado con los valores normalizados para todas las columnas en el data frame.

Comments are closed.