Implement K-Fold Cross-Validation from scratch. Split a dataset into K folds, and for each fold, use it as the validation set while the remaining folds form the training set.
def cross_validation_split(data: list, k: int) -> list:
fold_size = len(data) // k
folds = []
for i in range(k):
start = i * fold_size
end = start + fold_size
validation = data[start:end]
training = data[:start] + data[end:]
folds.append([training, validation])
return foldsi * fold_size to (i+1) * fold_size.