Crea le feature di train e test
Prima di adattare il nostro modello lineare, vogliamo aggiungere una costante alle feature, così da avere un intercetta nel modello lineare.
Vogliamo anche creare le feature di train e di test. In questo modo possiamo adattare il modello al dataset di train e valutarne le prestazioni sul dataset di test. Controlliamo sempre le prestazioni su dati che il modello non ha visto, per assicurarci di non fare overfitting, cioè memorizzare troppo alla lettera i pattern presenti nei dati di training.
Con una serie temporale come questa, in genere usiamo i dati più vecchi come training set e i dati più recenti come test set. Così possiamo valutare le prestazioni del modello sui dati più aggiornati, simulando in modo più realistico le previsioni su dati che non abbiamo ancora visto.
Questo esercizio fa parte del corso
Machine Learning per la finanza in Python
Istruzioni dell'esercizio
- Importa la libreria
statsmodels.apicon l'aliassm. - Aggiungi una costante alla variabile
featuresusando la funzione.add_constant()di statsmodels. - Imposta
train_sizecome l'85% del numero totale di datapoint (numero di righe) usando la proprietà.shape[0]difeaturesotargets. - Suddividi
linear_featuresetargetsin train e test set usandotrain_sizee l'indicizzazione Python (ad es.[start:stop]).
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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)