Validação cruzada com embaralhamento
Como você deve lembrar, validação cruzada é o processo de dividir seus dados em conjuntos de treino e teste várias vezes. A cada repetição, você escolhe conjuntos de treino e teste diferentes. Neste exercício, você vai realizar uma validação cruzada tradicional ShuffleSplit nos dados de valor de empresas vistos anteriormente. Mais adiante, veremos o que muda para séries temporais. Usaremos os mesmos dados históricos de preços de várias grandes empresas.
Uma instância do objeto de regressão linear (model) está disponível no seu ambiente, junto com a função r2_score() para avaliação. Além disso, os dados estão armazenados nos arrays X e y. Também fornecemos uma função auxiliar (visualize_predictions()) para ajudar a visualizar os resultados.
Este exercício faz parte do curso
Machine Learning para dados de séries temporais em Python
Instruções do exercício
- Inicialize um objeto de validação cruzada ShuffleSplit com 10 divisões.
- Itere pelos splits da validação cruzada usando esse objeto. Em cada iteração:
- Ajuste um modelo usando os índices de treino.
- Gere previsões usando os índices de teste, calcule a pontuação do modelo (\(R^2\)) usando as previsões e colete os resultados.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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)