Kom igångKom igång gratis

Standardisera data

Vissa modeller, som K-närmaste grannar (KNN) och neurala nätverk, fungerar bättre med skalad data – därför standardiserar vi våra data.

Vi tar också bort mindre viktiga variabler (veckodag) baserat på särdragsviktigheter, genom att indexera feature-DataFrames med .iloc[]. KNN använder avstånd för att hitta liknande datapunkter vid förutsägelser, vilket innebär att stora särdrag annars dominerar över små. Skalning av data löser det problemet.

sklearn:s scale() standardiserar data genom att sätta medelvärdet till 0 och standardavvikelsen till 1. Idealt skulle vi använda StandardScaler med fit_transform() på träningsdata och fit() på testdata, men vi är begränsade till 15 kodrader här.

När vi har skalat datan kontrollerar vi att det fungerade genom att rita histogram över datan.

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

Maskininlärning för finans i Python

Visa kurs

Övningsinstruktioner

  • Ta bort veckodagssärdragens kolumner från tränings- och testdata med .iloc (veckodagarna är de sista 4 särdragen).
  • Standardisera train_features och test_features med sklearns scale(); lagra de skalade särdragen som scaled_train_features respektive scaled_test_features.
  • Rita ett histogram över det 14-dagars glidande medelvärdet för RSI (indexerat med [:, 2]) från de oskalade train_features i det första deldiagrammet (ax[0]).
  • Rita ett histogram över det standardiserade 14-dagars glidande medelvärdet för RSI i det andra deldiagrammet (ax[1]).

Interaktiv övning med praktiskt arbete

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

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