pub fn k_fold(n: usize, k: usize, shuffle_rows: bool, seed: u64) -> Vec<Fold>
k-fold splits over n rows. shuffle_rows randomizes fold membership (seeded); otherwise folds are contiguous blocks. Empty if k < 2 or k > n.
k
n
shuffle_rows
k < 2
k > n