Křížová validace s náhodným mícháním
Křížová validace je proces, při kterém opakovaně rozdělíš data na trénovací a testovací sady — pokaždé s jiným rozdělením. V tomto cvičení provedeš tradiční křížovou validaci pomocí ShuffleSplit na datech o hodnotě společností z předchozí části. Později se podíváme na to, co je potřeba upravit pro práci s časovými řadami. Budeme pracovat se stejnými historickými cenovými daty několika velkých společností.
V pracovním prostředí máš k dispozici instanci objektu lineární regrese (model) a funkci r2_score() pro hodnocení modelu. Data jsou uložena v polích X a y. K dispozici je také pomocná funkce (visualize_predictions()), která ti pomůže vizualizovat výsledky.
Toto cvičení je součástí kurzu
Machine Learning pro data časových řad v Pythonu
Pokyny k cvičení
- Inicializuj objekt křížové validace ShuffleSplit s 10 rozděleními.
- Iteruj přes rozdělení křížové validace pomocí tohoto objektu. V každé iteraci:
- Natrénuj model na trénovacích indexech.
- Vygeneruj předpovědi pomocí testovacích indexů, ohodnoť model (\(R^2\)) na základě předpovědí a ulož výsledky.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)