Thanks, I'm trying to do the following, but I do not know if I'm right
# read de dataset
Datos <- read.table(file="datos_campus_virtual.txt",header=TRUE)
# conver to categorical data
for(unique_value in unique(Datos$feno)){
Datos[paste("feno", unique_value, sep = ".")] <- ifelse(Datos$feno == unique_value, 1, 0)
}
for(unique_value in unique(Datos$grado)){
Datos[paste("grado", unique_value, sep = ".")] <- ifelse(Datos$grado == unique_value, 1, 0)
}
Datos$quim <- ifelse(Datos$quim=="No",0,1)
Datos$horm <- ifelse(Datos$horm=="No",0,1)
Datos$recid <- ifelse(Datos$recid=="No",0,1)
# Two set: training (334) y test (166) with holdout
Division <- holdout(y=Datos$recid)
# prepara de data training and test
train <- Datos[Division$tr,]
x_train <- subset.data.frame(train,select = -grado)
x_train <- subset.data.frame(x_train,select = -feno)
test <- Datos[Division$ts,]
x_test <- subset.data.frame(test,select = -grado)
x_test <- subset.data.frame(x_test,select = -feno)
x_train_matrix = data.matrix(x_train)
x_test_matrix = data.matrix(x_test)
# Autoencoder and encoder
original_dim <- 15 #7L
encoding_dim <- 7 #4L
latent_dim <-15 #7L
# **********************
# Model definition
# **********************
# this is our input placeholder
input <- layer_input(shape = c(original_dim))
# "encoded" is the encoded representation of the input
encoded<- layer_dense(input,encoding_dim , activation = "relu")
#decode layer
decoded<- layer_dense(encoded, latent_dim , activation = "sigmoid")
model_enconded <- keras_model(input, encoded)
model_autoencoder <- keras_model(input, decoded)
# **********************
# Compile
# **********************
model_autoencoder %>% compile(optimizer = 'adadelta', loss = 'binary_crossentropy')
# **********************
# training
# **********************
history <- model_autoencoder %>% fit(x_train_matrix, x_train_matrix,epochs=50,batch_size=256)
#predict
feature <- predict(object = model_enconded,x = x_test_matrix)
# Save de new data
write.csv(feature, file = "dataencoded.csv",row.names = FALSE)