Oiliness drives it
Correlation of each property with measured solubility. Negative means more of it, less soluble.
Chemistry · Data analysis · Machine learning
Measured water solubility for 1,128 molecules from the ESOL dataset, what a machine-learning model predicts for each one, and the chemical families where it still gets things badly wrong.
Each dot is one molecule. Hover or tap for details. Orange means the model was off by more than 10×.
Correlation of each property with measured solubility. Negative means more of it, less soluble.
Prediction error (RMSE, log units) by chemical family. Click a family to highlight it above.
Error grouped by how similar each molecule is to its closest neighbour in the data.
The errors aren't random. Each cluster points to something worth testing.
43 phosphorus esters have ~2× the typical error, and they're always more soluble than predicted. Is the Crippen logP method mis-scoring phosphorus?
Test: compare with measured logP, or retrain with a different logP method, and check whether the bias disappears.
Rigid, flat, high-melting solids like anthraquinone are less soluble than predicted. Structure alone can't see how tightly a crystal packs.
Test: add melting point, the key term in the General Solubility Equation, and measure the error drop.
Molecules with no close neighbour in the data (similarity < 0.4) get ~50% larger errors.
Test: build an applicability-domain score and check that it ranks the worst predictions first.
The learning curve is still falling, from 0.89 to 0.70 as training molecules grow from 90 to 902.
Test: rerun on a larger curated set such as AqSolDB (~10k compounds) and estimate the measurement-noise floor.
The dataset has no carboxylic acids and only 9 molecules above 500 g/mol, so it says little about ionisable, drug-sized compounds.
Test: evaluate on an external set of acids and larger molecules with pH-controlled solubility.