1
$\begingroup$

I am given a dataset $D$ of 10k enzyme-substrate complexes having a lock-key relationship, with each sample (complex) being characterized by enzyme features $x_e$ and substrate features $x_s$. That is, each complex (each row) is described as the concatenated features $x = x_e \oplus x_s$.

I want to build a model that will able to classify whether an enzyme-substrate combination would be valid. Of course, my data contains only positive samples but I know that every other enzyme-substrate combination except the ones in $D$ won't have a lock-key relationship, i.e. they are negative samples (invalid combinations). I.e., if $x = x_e \oplus x_s$ and $x' = x'_e \oplus x'_s$ are both valid combinations, then the combination $\bar{x} = x_s \oplus x'_e$ would be invalid.

I have augment my dataset $D$ with 10k (random) invalid augmentations, which gives rise to a new dataset $D_\text{new}$ of size 20k.

I want to train a classifier on this (augmented) dataset, but I don't know if I should use GroupKFold for the splits, or a StratifiedKFold is fine. I have read that GroupKFold should be used when multiple rows come from the same id (e.g. writer, patient etc). In my case, each row describes a different pair but two rows may share the same $x_e$ or $x_s$.

What is the proper way to split in this case?

PS: I would appreciate any resources that describe why GroupKFold is needed in a more formal way, than the usual one seen in tutorials for example.

$\endgroup$

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.