Time K-fold
¿Recuerdas el "Store Item Demand Forecasting Challenge", donde te dan datos de ventas por tienda y artículo y tienes que predecir las ventas futuras?
Es una competición con datos de series temporales. Por tanto, deberías aplicar validación cruzada con K-fold temporal. Tu objetivo es crear esta estrategia de validación y asegurarte de que funciona como esperas.
Ten en cuenta que el DataFrame train ya está disponible en tu espacio de trabajo y que TimeSeriesSplit se ha importado desde sklearn.model_selection.
Este ejercicio forma parte del curso
Cómo ganar una competición de Kaggle con Python
Instrucciones del ejercicio
- Crea un objeto
TimeSeriesSplitcon 3 particiones. - Ordena los datos de train por la columna "date" para aplicar el K-fold temporal.
- Recorre cada partición temporal usando el objeto
time_kfold. - En cada partición, selecciona los conjuntos de entrenamiento y prueba usando
train_indexytest_index.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Create TimeSeriesSplit object
time_kfold = TimeSeriesSplit(n_splits=____)
# Sort train data by date
train = train.sort_values(____)
# Iterate through each split
fold = 0
for train_index, test_index in ____.____(____):
cv_train, cv_test = ____.____[____], ____.____[____]
print('Fold :', fold)
print('Train date range: from {} to {}'.format(cv_train.date.min(), cv_train.date.max()))
print('Test date range: from {} to {}\n'.format(cv_test.date.min(), cv_test.date.max()))
fold += 1