The machine learning algorithm for benchmarking was Random Forest , implemented in the Scikit-learn Python package . The following training procedure was used: the activity class labels and corresponding descriptors were extracted for each target, and then data was split into five folds using the StratifiedKFold algorithm . The standard scaling was fitted on the training folds for each cross-validation iteration and used to transform the validation fold, except for fingerprints. To explore different parameters, the grid search was used. The metrics were balanced accuracy (BA) and receiver operating characteristic area under the curve (ROCAUC). The parameters of training are given in the Supplementary information.