Zacznij terazZacznij za darmo

Tworzenie cech treningowych i testowych

Zanim dopasujemy nasz model liniowy, dodamy stałą do cech – dzięki temu model będzie miał wyraz wolny.

Chcemy też podzielić dane na zbiór treningowy i testowy. Pozwoli nam to dopasować model do zbioru treningowego i ocenić jego wydajność na zbiorze testowym. Zawsze warto sprawdzać wyniki na danych, których model wcześniej nie widział – w ten sposób upewniamy się, że model nie jest przetrenowany, czyli że nie zapamiętał wzorców ze zbioru treningowego zbyt dosłownie.

W przypadku szeregów czasowych zwykle korzystamy z najstarszych danych jako zbioru treningowego, a z najnowszych – jako testowego. Dzięki temu możemy ocenić działanie modelu na najświeższych danych, co lepiej odzwierciedla realne prognozy na danych, których jeszcze nie widzieliśmy.

To ćwiczenie jest częścią kursu

Uczenie maszynowe w finansach z Pythonem

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj bibliotekę statsmodels.api z aliasem sm.
  • Dodaj stałą do zmiennej features, korzystając z funkcji .add_constant() dostępnej w statsmodels.
  • Ustaw train_size jako 85% łącznej liczby punktów danych (liczby wierszy), używając właściwości .shape[0] zmiennej features lub targets.
  • Podziel linear_features i targets na zbiory treningowy i testowy, używając train_size oraz indeksowania w Pythonie (np. [start:stop]).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod