@@ -194,15 +194,25 @@ Uncertainty estimates can drive active learning (query most uncertain candidates
194194
195195## Cross-validation
196196
197- Formula-grouped splitting prevents same-composition leakage between folds:
197+ Formula-grouped splitting prevents same-composition leakage between folds.
198+ ` group_by ` accepts ` "formula" ` (uses each system's directory name as the group
199+ key — requires directories named by formula, e.g. ` H2O/ ` , ` CH4/ ` ) or a list
200+ of labels the same length as ` systems ` :
198201
199202``` python
200203from dpa_adapt import cross_validate, train_test_split, load_dataset
201204
202205systems = load_dataset(" /data/root" , label_key = " energy" )
206+
207+ # Case 1: directory names are formulas (e.g. data/H2O/, data/CH4/)
203208train, valid, test = train_test_split(systems, group_by = " formula" , seed = 42 )
204209
205- result = cross_validate(model, systems, label_key = " energy" , cv = 5 , group_by = " formula" )
210+ # Case 2: directory names are not formulas (e.g. QM9's sys_0000, sys_0001, …)
211+ formulas = [" H2O" , " H2O" , " CH4" , " CH4" , ... ] # one label per system
212+ train, valid, test = train_test_split(systems, group_by = formulas, seed = 42 )
213+
214+ # Cross-validate (same group_by options apply)
215+ result = cross_validate(model, systems, label_key = " energy" , cv = 5 , group_by = formulas)
206216# → {"aggregate": {"mae_mean": ..., "rmse_std": ...}, ...}
207217```
208218
0 commit comments