Creează caracteristicile de antrenament și de testare
Înainte de a antrena modelul liniar, vrem să adăugăm o constantă caracteristicilor, astfel încât modelul să aibă un intercept.
De asemenea, vrem să creăm seturi de caracteristici pentru antrenament și pentru testare. Astfel, putem antrena modelul pe setul de antrenament și îi evaluăm performanța pe setul de testare. Este important să verificăm întotdeauna performanța pe date pe care modelul nu le-a văzut, pentru a ne asigura că nu apare supraadaptarea (overfitting) – adică memorarea prea exactă a tiparelor din datele de antrenament.
În cazul unei serii de timp ca aceasta, de obicei folosim cele mai vechi date ca set de antrenament și cele mai recente ca set de testare. Astfel, evaluăm performanța modelului pe datele cele mai recente, ceea ce simulează mai realist predicțiile pe date nevăzute.
Acest exercițiu face parte din cursul
Machine Learning pentru finanțe în Python
Instrucțiuni pentru exercițiu
- Importă biblioteca
statsmodels.apicu aliasulsm. - Adaugă o constantă variabilei
featuresfolosind funcția.add_constant()din statsmodels. - Setează
train_sizela 85% din numărul total de puncte de date (numărul de rânduri), folosind proprietatea.shape[0]a variabileifeaturessautargets. - Împarte
linear_featuresșitargetsîn seturi de antrenament și de testare folosindtrain_sizeși indexarea Python (de ex.[start:stop]).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)