To elucidate the computational steps, we begin with an explanation of the nested loop, which operates as follows: Train model: In accordance with standard procedures, the ML model is trained on 85% of the data (a randomly generated training set), while the main hyperparameters are maintained as specified in Table . Identify maximum error: The trained model predicts log solubility for the test set and calculates the absolute prediction error for each molecule to identify the maximum absolute error. Update dataset: If a molecule's error exceeds an acceptable threshold, it is removed from the dataset. The data indices are then reset to prepare for another iteration, if necessary. Iterate: This process is repeated, involving the recalculation of the maximum error and reassessment for outliers. The iter- ative cycle continues until no further outliers are detected or until a predetermined number of iterations or deletions have been achieved. To assess the final set of outliers, we implemented the procedure described above using various descriptors (D 1 , D 2 , D 3 , and D 4 ). The overlap of the outputs from these descriptors yielded the final set of outliers, defined mathematically as: