Validação cruzada com embaralhamento
Como você deve se lembrar, a validação cruzada é o processo de dividir seus dados em conjuntos de treinamento e teste várias vezes. Cada vez que fizer isso, você escolherá um conjunto de treinamento e teste diferente. Neste exercício, você realizará uma validação cruzada tradicional ShuffleSplit
nos dados de valor da empresa obtidos anteriormente. Mais adiante, abordaremos as alterações que precisam ser feitas para dados de séries temporais. Os dados que usaremos são 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 em seu espaço de trabalho junto com a função r2_score()
para pontuação. Além disso, os dados são armazenados em matrizes X
e y
. Também fornecemos uma função auxiliar (visualize_predictions()
) para ajudar você a visualizar os resultados.
Este exercício faz parte do curso
Aprendizado de máquina 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 entre as divisões de CV usando esse objeto. Em cada iteração:
Ajuste um modelo usando os índices de treinamento.
Gere previsões usando os índices de teste, pontue o 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)