Extracting patterns and relationships between categorical data in keras


Hi all,

I was just wondering if anybody would be able to help with some data I am struggling to extract from keras after a model I have built is run on my data. The main issue here is the number of categorical data I have and how I am trying to find relationships between them. I have built a sequential model for some genomic data as follows:

Data=Genes as columns and ages as columns: Categorical data such as age and organ etc are one-hot encoded:

onehot <- data.frame(to_categorical(onehot$Age, 7), to_categorical(onehot$Organ, 13), to_categorical(onehot$Sex, 4, onehot[,1:5000] **(number of genes**)..etc

split data (code not shown

build model (sequential)

model <- keras_model_sequential()

model %>%
   layer_dense(units=150, activation = 'relu', input_shape = 5000) %>%  
   #layer_dense(units = 128, activation = "relu") %>%
   layer_dense(units = 64, activation = "relu") %>%   
   #layer_dense(units = 32, activation = "relu") %>%
   #layer_dropout(0.2) %>%
   #layer_dense(units = 5074, activation = "relu") %>%
   layer_dense(units=ncol(trainingtarget1), activation = "sigmoid")
# sigmoid for multi-class and multi-label classification

model %>% keras::compile(loss='binary_crossentropy',
history <- model%>% 
   fit(as.matrix(training1), # input, the first independent variables
       as.matrix(trainingtarget1), # input, Metadata
       validation_split = 0.15,
       callbacks = list(early_stop, print_dot_callback))

Run test set on model

I get good accuracy on this. I can predict classes on the individual categorical data to see how well it identifies organ, age etc...

What I would like to do is extract the genes that that light up because of relationships between the one-hot encoded categorical data.. i.e, genes that are high in young ages and low in adults in 5 of the organs specifically because they are female organs (for example).. Is there a way of extracting relational information like this? Given that this is a sequential model, it must find patterns linked to this also.....

I would be more than happy to provide any more code if necessary!

Any help would be greatly appreciated!

Many thanks!!


closed #2

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.