Da documentação: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
" Split arrays or matrices into random train and test subsets."
O train_test_split divide nosso dataset em subconjuntos de treino e teste de modo aleatório, tentando deixá-los o menos padronizados e enviezados quanto possível.
Porém, nas séries temporais não podemos trabalhar com os dados distribuídos de forma aleatória, pois a ordem cronológica é o determinante deste tipo de modelo, dividir randomicamente violaria a lógica temporal e resultaria em uma avaliação irrealista.
Por isso precisamos de outras alternativas para fazer essa divisão, uma delas pode ser o TimeSeriesSplit:
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html
Agora, quanto ao tamanho dos dataset de treino/test, o tamanho da escolha deve variar de acordo com o tamanho do nosso dataset Quanto mais dados de treino pudermos utilizar, melhor a generalização e menor o risco de overfitting aos poucos exemplos. Se usássemos muito pouco para treino e muito para teste, o modelo seria mal treinado e o desempenho na prática seria ruim.