Você está na página 1de 6

Série Temporais A2 - Projeto 2

Emanuel Bissiatti de Almeida

Preparação dos dados

Assim como no projeto de séries temporais que utilizava a mesma base de dados, neste trabalho é preciso realizar uma
limpeza dos dados. Dessa forma, foi feita a seguinte limpeza e preparação dos dados:

Eliminar as linhas duplicadas;


Interpolar dados na existência de datas sem dados, realizando uma interpolação linear neste caso
Agrupar os dados indexados por minutos para horas para reduzir o custo computacional do aprendizado de máquina
Verificar a presensa de dados redundates e elimina-los.

Observa-se que mensuram a temperatura de três formas diferentes (consultei a informação desta base de dados na
intermet). Portanto, para esta análise, irei descartar as colunas "Tpot (K)" e "Tdrew" e utilizar a temperatura a partir de "T
(degC)".

Em seguida, exportei os dados tratados para um novo arquivo que será usado na próxima etapa deste trabalho.

Além disso, para o melhor treinamento dacision tree, destacando a sazionalidade tanto anual como diária, separei a variável
temporal, em mês, dia do mês, hora, ano e dia do ano. Repare que apesar dessas informações estarem todas contidas na
variável temporal e elas não são muito correlacionadas com a temperatura:

Dados temporais e temperatura.

Para comparar o desempenho dos modelos deste trabalho com o modelos do trablahos da A2 parte 1, sobretudo os modelos
clássicos, vou utilizar apenas as informações de temperatura e de tempo nesta seção.

Decision Tree

Utilizando a implementação da Decision Tree através do Sklearn no Python com os dados de teste relativo a 2 anos (cerca de
25%) temos a seguinte performance: M AE = 1.23194. Aplicando a h = 24, isto é presizendo as próximas 24 horas obtive uma
performance de M AE = 1.16125, veja:

Segundo o modelo, observe as Freatures mais importantes:

Uma das grandes vantagens dos modelos de árvore, é a interpretabilidade dos resultados. É possível identificar que neste
modelo, dia do mês e o mês do ano não foram muito relevantes para o treinamento do modelo. Assim, removi-los e retreinei
o modelo de árvore de decisão.

Utilizando apenas os dados temporais de dia do ano, ano e hora do dia, não obtive melhora no desempenho da árvore de
decisão: M AE = 1.16125 para h = 24.

Random Florest

No modelo de Random Florest, implementado pelo scikitlearn, para h = 24, consegui o seguinte erro: M AE = 1.24845 ,
levemente melhor do que a árvore de decisão:

Vejamos a features mais relevantes:

É notável uma ligeira diferença quando comparada a Decision Tree, a utilização do mês do ano como parâmetro. Removendo
o mês do ano e o dia do mês, notei uma piora no desempenho do Random Florest: M AE = 1.344174 para h = 24.

E se eu adicionar um shift de temperatura? Tentando melhorar a performance do modelo, adicionei um shift de 24 horas e um
shift de 365 dias. O resultado deste teste foi de M AE = 1.082765972, o menor erro registrado até agora, veja:
Observe também as features mais relevantes:

Bagging

De maneira análoga aos modelos rodados anteriormente, o Bagging foi chamado através da biblioteca do Sklearn e treinado
para prever h = 24 passos a frente da temperatura baseado exclusivamente no tempo. O resultado foi de M AE = 1.314284 ,
infeiror ao Random Florest, veja:

Adicionando o drift, foi possível notar uma melhoria no erro: M AE = 1.22082638 porém ainda inferior ao Random Florest

Boosting:

Primeiro, utilizando o boosting da biblioteca Python Lightgbm, temos que um treinamenro

usando os dados temporais que o modelo possuiu um erro de: M AE = 1.6287534632173009, após adicionar o shift da
temperatura tanto anual como mensal tivemos uma melhora no resultado de teste para h = 24, obtendo M AE = 1.155242593
Observe a diferença:

Note a importância de Freatures desse modelo:

Segundo, utilizando a bibloteca XGBoost do python, consegui um resultado após o treino utilizando apenas os dados
temporais de: M AE = 1.1613979755908561 , veja:

Após adicionar o shift da temperautura, o resultado deste modelo não houve melhoria relevante, permanecendo com um erro
muito próximo ao anterior M AE = 1.1613554087

Utilizando os outros dados.

Ao treinar a Random Florest, com os outros dados fornecidos pelo sistema mais os dados temporais temos: M AE : 1.16125

para h = 24:

Veja a relevância de Features:

Como é possível ver no ínicio deste trabalho, a correlação entre VPmax e a temperatura é muito alta, removendo esta Feature
para ver se melhora o resultado, mas, obtive apenas um M AE = 1.152996527 . E o mesmo se reptiu nos modelos de Boosting,
Bagging e Decision Tree, adicionar mais Features além da temperatura e do tempo, e tabém configurando os hiperparâmetros,
não foi suificiente para melhorar o modelo siguinificantemente ao ponto de superar o M AE do melhor Random Florest

Conclusão

Portanto, os modelos de árvores foram muito úteis neste trabalho por causa da sua interpretabilidade, auxiliando para a
escolha das melhores Freatures para treinar os modelos afim de maximizar a performance. Dos modelos testados neste
trabalho, o que obteve melhor resultado, que utilizou apenas o tempo e a temperatura, foi o modelo de Random Florest com
Shift de 24 dias e de 365 dias sobre a temperatura, porém, sua performance foi infererior ao modelo de Deep Learning LSTM
que conseguiu reduzir este erro pela metade utlizando as mesmas informações. Os demais, não só conseguiram um
desempenho inferior a esta Random Florest, como também não houve uma mudança siguinificativa no desempenho ao
adicionar Features e remover Features.

Você também pode gostar