ÎncepețiÎncepe gratuit

Standardizarea datelor

Unele modele, precum K-nearest neighbors (KNN) și rețelele neuronale, funcționează mai bine cu date scalate – așadar, vom standardiza datele noastre.

Vom elimina și variabilele neimportante (ziua din săptămână), conform importanței caracteristicilor, indexând DataFrame-urile de caracteristici cu .iloc[]. KNN folosește distanțe pentru a găsi puncte similare în vederea predicțiilor, deci caracteristicile cu valori mari le domină pe cele cu valori mici. Scalarea datelor rezolvă această problemă.

Funcția scale() din sklearn va standardiza datele, setând media la 0 și deviația standard la 1. În mod ideal, am folosi StandardScaler cu fit_transform() pe datele de antrenament și fit() pe datele de testare, dar suntem limitați la 15 linii de cod aici.

După ce scalăm datele, vom verifica dacă procesul a funcționat corect, reprezentând grafic histogramele datelor.

Acest exercițiu face parte din cursul

Machine Learning pentru finanțe în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Elimină caracteristicile corespunzătoare zilei din săptămână din seturile de caracteristici de antrenament/testare folosind .iloc (ziua din săptămână corespunde ultimelor 4 caracteristici).
  • Standardizează train_features și test_features cu funcția scale() din sklearn; stochează caracteristicile scalate ca scaled_train_features și scaled_test_features.
  • Trasează o histogramă a mediei mobile RSI pe 14 zile (indexată la [:, 2]) din train_features nescalate, pe primul subplot (ax[0]).
  • Trasează o histogramă a mediei mobile RSI pe 14 zile standardizate pe al doilea subplot (ax[1]).

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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()
Editează și rulează codul