Hi there!
I have read you awesome work and decided to implement the motif extraction on my domain. I noticed that in the paper you have mentioned that We finally rank the features by the numerical values of the derivatives, and present the top and bottom quantiles of the features as “best motifs” and “worst motifs” respectively
and also motifs with most positive and negative derivatives (hence the most and least desirable)
. However in the interpreter.py code where you want to extract good and bad motifs you do this
up = np.percentile(self.grad_, 100. - thres)
lo = np.percentile(self.grad_, thres)
# Identify the good and bad features
self.bad_idx = np.argwhere(self.grad_ >= up).flatten()
self.good_idx = np.argwhere(self.grad_ <= lo).flatten()
it seems that in the code you are doing the opposite: considering the smallest gradients corresponding to the best motifs and vice versa. Can you please explain more about this?
Also while I was looking at the motifs' gradients on my data, I notice a large portion of the motifs having 0 gradients. Can you help me interpreting this skewed distribution? Whether I need to check something specific for this?
Thank you in advance for your kind help,
Paniz