LoslegenKostenlos starten

Daten standardisieren

Einige Modelle, wie K-nearest neighbors (KNN) und neuronale Netze, funktionieren mit skalierten Daten besser – also standardisieren wir unsere Daten.

Außerdem entfernen wir unwichtige Variablen (Wochentag) gemäß den Feature-Importanzen, indem wir die Features-DataFrames mit .iloc[] indizieren. KNN verwendet Distanzen, um für Vorhersagen ähnliche Punkte zu finden, daher dominieren große Merkmale kleine. Durch Skalierung wird das behoben.

sklearn's scale() standardisiert Daten, setzt also den Mittelwert auf 0 und die Standardabweichung auf 1. Idealerweise würden wir StandardScaler mit fit_transform() auf den Trainingsdaten und fit() auf den Testdaten verwenden, aber wir sind hier auf 15 Zeilen Code beschränkt.

Nachdem wir die Daten skaliert haben, prüfen wir das Ergebnis, indem wir Histogramme der Daten plotten.

Diese Übung ist Teil des Kurses

<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Entferne die Wochentags-Features aus den Train/Test-Features mit .iloc (die Wochentage sind die letzten 4 Features).
  • Standardisiere train_features und test_features mit sklearn's scale(); speichere die skalierten Features als scaled_train_features und scaled_test_features.
  • Plotte ein Histogramm des 14-tägigen RSI-Gleitenden Mittels (Index [:, 2]) aus den unskalierten train_features im ersten Subplot (ax[0]).
  • Plotte ein Histogramm des standardisierten 14-tägigen RSI-Gleitenden Mittels im zweiten Subplot (ax[1]).

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

from sklearn.preprocessing import scale

# Remove unimportant features (weekdays)
train_features = train_features.iloc[:, :-4]
test_features = test_features.____

# Standardize the train and test features
scaled_train_features = scale(train_features)
scaled_test_features = ____

# Plot histograms of the 14-day SMA RSI before and after scaling
f, ax = plt.subplots(nrows=2, ncols=1)
train_features.iloc[:, 2].hist(ax=____)
ax[1].hist(scaled_train_features[:, 2])
plt.show()
Code bearbeiten und ausführen