'K-Folds cross validation iterator:
Provides train/test indexes to split data in train test sets
Parameters
n: int
Total number of elements
k: int
number of folds
Examples
>>> from scikits.learn import cross_val
>>> X = [[1, 2], [3, 4], [1, 2], [3, 4]]
>>> y = [1, 2, 3, 4]
>>> kf = cross_val.KFold(4, k=2)
>>> for train_index, test_index in kf:
...    print "TRAIN:", train_index, "TEST:", test_index
...    X_train, X_test, y_train, y_test = cross_val.split(train_index, test_index, X, y)
TRAIN: [False False  True  True] TEST: [ True  True False False]
TRAIN: [ True  True False False] TEST: [False False  True  True]
Notes
All the folds have size trunc(n/k), the last one has the complementary'

def __init__(self, n, k):

    assert (k > 0), ValueError('cannot    have    k    below    1')
    assert (k < n), ValueError(('cannot    have    k=%d    greater    than    %d' % (k, n)))
    self.n = n
    self.k = k
