Binarizar variables continuas
Este post fue publicado originalmente en Data Mining con R por noreply@blogger.com (Enmanuel Santana)
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.
NOTA: En algunas situaciones esto puede significar una perdida de información, para detalle sobre esto ver referencias 1 y 2. Para ver técnica usando arboles de decision, ver referencia numero 3.
# 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[i],"_disc_", ii, sep = "") } }