ComenzarEmpieza gratis

Validación cruzada con barajado

Como recordarás, la validación cruzada consiste en dividir tus datos en conjuntos de entrenamiento y prueba varias veces. Cada vez que lo haces, eliges un conjunto de entrenamiento y otro de prueba distintos. En este ejercicio, realizarás una validación cruzada tradicional ShuffleSplit con los datos de valor de empresas que usamos antes. Más adelante veremos qué cambios hay que hacer para datos de series temporales. Usaremos los mismos precios históricos de varias grandes compañías.

En tu espacio de trabajo tienes una instancia del objeto de regresión lineal (model) y la función r2_score() para puntuar. Además, los datos están guardados en los arrays X y y. También te hemos proporcionado una función de ayuda (visualize_predictions()) para visualizar los resultados.

Este ejercicio forma parte del curso

Machine Learning para datos de series temporales en Python

Ver curso

Instrucciones del ejercicio

  • Inicializa un objeto de validación cruzada ShuffleSplit con 10 particiones.
  • Itera por las particiones de validación cruzada usando este objeto. En cada iteración:
    • Ajusta un modelo usando los índices de entrenamiento.
    • Genera predicciones usando los índices de prueba, calcula la puntuación del modelo (\(R^2\)) con esas predicciones y guarda los resultados.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Import ShuffleSplit and create the cross-validation object
from sklearn.model_selection import ShuffleSplit
cv = ____(____, random_state=1)

# Iterate through CV splits
results = []
for tr, tt in cv.____(X, y):
    # Fit the model on training data
    ____(X[tr], y[tr])
    
    # Generate predictions on the test data, score the predictions, and collect
    prediction = ____(X[tt])
    score = r2_score(____, ____)
    results.append((prediction, score, tt))

# Custom function to quickly visualize predictions
visualize_predictions(results)
Editar y ejecutar código