Kom igångKom igång gratis

Skapa tränings- och testegenskaper

Innan vi anpassar vår linjära modell vill vi lägga till en konstant i våra särdrag, så att modellen får ett intercept.

Vi vill också dela upp särdragen i tränings- och testset. Det gör att vi kan anpassa modellen på träningsdatan och sedan utvärdera prestandan på testdatan. Det är alltid viktigt att kontrollera prestandan på data som modellen inte har sett tidigare – annars riskerar vi överanpassning, det vill säga att modellen memorerar mönster i träningsdatan alltför exakt.

Med en tidsserie som denna vill vi vanligtvis använda den äldsta datan som träningsset och den nyaste som testset. På så sätt utvärderar vi modellens prestanda på den mest aktuella datan, vilket ger en mer realistisk bild av hur modellen presterar på osedd data.

Den här övningen är en del av kursen

Maskininlärning för finans i Python

Visa kurs

Övningsinstruktioner

  • Importera biblioteket statsmodels.api med aliaset sm.
  • Lägg till en konstant i variabeln features med hjälp av statsmodels funktion .add_constant().
  • Sätt train_size till 85 % av det totala antalet datapunkter (antal rader) med hjälp av egenskapen .shape[0] för features eller targets.
  • Dela upp linear_features och targets i tränings- och testset med hjälp av train_size och Pythons indexering (t.ex. [start:stop]).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod