1. Apprendre
  2. /
  3. Cours
  4. /
  5. Machine Learning pour la finance en Python

Connected

Exercice

Standardiser les données

Certains modèles, comme K-nearest neighbors (KNN) et les réseaux de neurones, donnent de meilleurs résultats avec des données mises à l'échelle — nous allons donc standardiser nos données.

Nous allons aussi retirer des variables peu importantes (jour de la semaine), selon l'importance des variables, en indexant les DataFrames de caractéristiques avec .iloc[]. KNN utilise des distances pour trouver des points similaires lors des prédictions, donc les caractéristiques à grande échelle dominent celles à petite échelle. Mettre les données à l'échelle corrige ce problème.

sklearn et sa fonction scale() permettent de standardiser les données, ce qui fixe la moyenne à 0 et l'écart type à 1. Idéalement, on utiliserait StandardScaler avec fit_transform() sur les données d'entraînement et fit() sur les données de test, mais nous sommes limités à 15 lignes de code ici.

Une fois les données mises à l'échelle, nous vérifierons que tout a bien fonctionné en traçant des histogrammes des données.

Instructions

100 XP
  • Retirez les caractéristiques de jour de la semaine des caractéristiques d'entraînement/test à l'aide de .iloc (les jours de la semaine correspondent aux 4 dernières caractéristiques).
  • Standardisez train_features et test_features avec scale() de sklearn; enregistrez les caractéristiques mises à l'échelle sous scaled_train_features et scaled_test_features.
  • Tracez un histogramme de la moyenne mobile du RSI sur 14 jours (indexée à [:, 2]) à partir de train_features non mises à l'échelle sur le premier sous-graphe (ax[0]).
  • Tracez un histogramme de la moyenne mobile du RSI standardisée sur le deuxième sous-graphe (ax[1]).