¿Cómo uso un TimeSeriesSplit con un objeto GridSearchCV para ajustar un modelo en scikit-learn?

He buscado elsklearn docs paraTimeSeriesSplit y eldocumentos para validación cruzada pero no he podido encontrar un ejemplo de trabajo.

Estoy usando sklearn versión 0.19.

Esta es mi configuracion

import xgboost as xgb
from sklearn.model_selection import TimeSeriesSplit
from sklearn.grid_search import GridSearchCV
import numpy as np
X = np.array([[4, 5, 6, 1, 0, 2], [3.1, 3.5, 1.0, 2.1, 8.3, 1.1]]).T
y = np.array([1, 6, 7, 1, 2, 3])
tscv = TimeSeriesSplit(n_splits=2)
for train, test in tscv.split(X):
    print(train, test)

da:

[0 1] [2 3]
[0 1 2 3] [4 5]

Si lo intento:

model = xgb.XGBRegressor()
param_search = {'max_depth' : [3, 5]}

my_cv = TimeSeriesSplit(n_splits=2).split(X)
gsearch = GridSearchCV(estimator=model, cv=my_cv,
                        param_grid=param_search)
gsearch.fit(X, y)

da:TypeError: object of type 'generator' has no len()

Me sale el problema:GridSearchCV está tratando de llamarlen(cv) peromy_cv es un iterador sin longitud. sin embargo, eldocumentos paraGridSearchCV declaro que puedo usar un

int, generador de validación cruzada o un iterable, opcional

Traté de usarTimeSeriesSplit sin el.split(X) pero aun así no funcionó.

Estoy seguro de que estoy pasando por alto algo simple, ¡gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta