Vytvoření trénovacích a testovacích příznaků
Než přistoupíme k trénování lineárního modelu, přidáme k příznakům konstantu – díky tomu bude mít model intercept.
Dále rozdělíme data na trénovací a testovací sadu. Model natrénujeme na trénovacích datech a jeho výkon ověříme na testovacích. Vždy je důležité hodnotit model na datech, která dosud neviděl – jinak riskujeme overfitting, tedy příliš přesné zapamatování vzorů v trénovacích datech.
U časových řad je zvykem používat nejstarší data jako trénovací sadu a nejnovější jako testovací. Díky tomu model hodnotíme na aktuálních datech, což realističtěji simuluje predikce na dosud neviděných datech.
Toto cvičení je součástí kurzu
Machine Learning for Finance in Python
Pokyny k cvičení
- Importuj knihovnu
statsmodels.apis aliasemsm. - Přidej konstantu k proměnné
featurespomocí funkce.add_constant()ze statsmodels. - Nastav
train_sizena 85 % celkového počtu datových bodů (počtu řádků) pomocí vlastnosti.shape[0]proměnnéfeaturesnebotargets. - Rozděl
linear_featuresatargetsna trénovací a testovací sady pomocítrain_sizea indexování v Pythonu (např.[start:stop]).
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 the statsmodels.api library with the alias sm
___
# Add a constant to the features
linear_features = sm.____(features)
# Create a size for the training set that is 85% of the total number of samples
train_size = int(0.85 * ____)
train_features = linear_features[:train_size]
train_targets = targets[____]
test_features = linear_features[train_size:]
test_targets = targets[train_size:]
print(linear_features.shape, train_features.shape, test_features.shape)