domingo, 13 de marzo de 2016

Binarizar variables continuas

El siguiente script transforma las variables continuas en múltiples variables binarias (0,1) que indican a qué cuartil pertenece la observación para cada variable.
Esto para usar en algoritmos (como las redes neuronales) que aprenden mas rápido con datos binarizados.

Usando el data set iris, conceptualmente queda así:















# Identificar variables calse
#----------------------------------------------------------
iris.bin <- subset(iris, select = Species)
 
 
# Identificar variables a binarizar
#----------------------------------------------------------
v.bin  <- c("Sepal.Length", "Sepal.Width",  "Petal.Length", "Petal.Width")
 
 
# binarizacion
#-----------------------------------------------------------
for (i in 1:length(v.bin) ){ 
  v_x    <- iris[,v.bin[i]]
  qnt    <- unique(quantile(v_x,seq(0, 1, .25)))
 
  for ( ii in 1:(length(qnt)-1) ) {
    iris.bin$tmp   <- ifelse (v_x > qnt[ii] & v_x <= qnt[ii+1], 1, 0)
    iris.bin$tmp   <- ifelse (qnt[ii] == qnt[1] & v_x == qnt[ii], 1, iris.bin$tmp)
    names(iris.bin)[names(iris.bin)=="tmp"] <- paste(v.bin,"_disc_", ii, sep = "")
  }
}

1 comentario:

  1. Hola Enmanuel, esta muy interesante pero la imagen que colocaste esta errónea si tienes chance revisala.

    Saludos.

    ResponderEliminar