Comece agoraComece grátis

Padronizando dados

Alguns modelos, como K-nearest neighbors (KNN) e redes neurais, funcionam melhor com dados escalonados — então vamos padronizar nossos dados.

Também vamos remover variáveis pouco importantes (dia da semana), de acordo com as importâncias de atributos, indexando os DataFrames de atributos com .iloc[]. KNN usa distâncias para encontrar pontos semelhantes nas previsões, então atributos com valores grandes pesam mais que os pequenos. Escalonar os dados corrige isso.

O scale() do sklearn padroniza os dados, definindo a média como 0 e o desvio padrão como 1. Idealmente, usaríamos StandardScaler com fit_transform() nos dados de treino e transform() nos dados de teste, mas aqui estamos limitados a 15 linhas de código.

Depois de escalar os dados, vamos verificar se funcionou plotando histogramas dos dados.

Este exercicio faz parte do curso

Machine Learning para Finanças em Python

Ver curso

Instruções do exercicio

  • Remova os atributos de dia da semana dos atributos de treino/teste usando .iloc (dia da semana são os últimos 4 atributos).
  • Padronize train_features e test_features usando scale() do sklearn; armazene os atributos escalonados em scaled_train_features e scaled_test_features.
  • Plote um histograma da média móvel do RSI de 14 dias (indexada em [:, 2]) a partir de train_features sem escala no primeiro subplot (ax[0]).
  • Plote um histograma da média móvel do RSI de 14 dias padronizada no segundo subplot (ax[1]).

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

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()
Editar e Executar Código