Crie recursos de treino e teste
Antes de ajustarmos nosso modelo linear, queremos adicionar uma constante às nossas features, para que o modelo tenha um intercepto.
Também vamos criar features de treino e de teste. Assim, conseguimos ajustar o modelo no conjunto de treino e avaliar o desempenho no conjunto de teste. Sempre precisamos verificar o desempenho em dados que o modelo não viu para garantir que não haja overfitting, que é quando ele memoriza padrões do conjunto de treino com precisão excessiva.
Com uma série temporal como esta, normalmente usamos os dados mais antigos como conjunto de treino e os mais recentes como conjunto de teste. Dessa forma, avaliamos o desempenho do modelo nos dados mais atuais, o que simula de forma mais realista previsões em dados que ainda não vimos.
Este exercicio faz parte do curso
Machine Learning para Finanças em Python
Instruções do exercicio
- Importe a biblioteca
statsmodels.apicom o aliassm. - Adicione uma constante à variável
featuresusando a função.add_constant()do statsmodels. - Defina
train_sizecomo 85% do número total de pontos de dados (número de linhas) usando a propriedade.shape[0]defeaturesoutargets. - Separe
linear_featuresetargetsem conjuntos de treino e teste usandotrain_sizee a indexação em Python (por exemplo,[start:stop]).
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Import the statsmodels.api library with the alias sm
___
# Add a constant to the features
linear_features = sm.____(features)
# Create a size for the training set that is 85% of the total number of samples
train_size = int(0.85 * ____)
train_features = linear_features[:train_size]
train_targets = targets[____]
test_features = linear_features[train_size:]
test_targets = targets[train_size:]
print(linear_features.shape, train_features.shape, test_features.shape)