
Extração automática de características relevantes de séries temporais:
Este repositório contém o pacote Python TSFRESH. A abreviatura significa
"Extração de características de séries temporais baseada em testes de hipóteses escaláveis".
O pacote fornece extração sistemática de características de séries temporais ao combinar algoritmos consolidados de estatística, análise de séries temporais, processamento de sinais e dinâmica não linear com um algoritmo robusto de seleção de características. Nesse contexto, o termo série temporal é interpretado no sentido mais amplo possível, de modo que qualquer tipo de dados amostrados ou até mesmo sequências de eventos possa ser caracterizado.
Cientistas de dados muitas vezes passam a maior parte do tempo limpando dados ou construindo características. Embora não possamos mudar a primeira parte, a segunda pode ser automatizada. O TSFRESH libera seu tempo gasto na construção de características ao extraí-las automaticamente. Assim, você tem mais tempo para estudar o artigo mais recente sobre deep learning, ler o Hacker News ou construir modelos melhores.
O TSFRESH extrai automaticamente centenas de características de séries temporais. Essas características descrevem propriedades básicas da série temporal, como o número de picos, o valor médio ou máximo, ou características mais complexas, como a estatística de simetria por reversão temporal.

O conjunto de características pode então ser usado para construir modelos estatísticos ou de aprendizado de máquina sobre as séries temporais, utilizados, por exemplo, em tarefas de regressão ou classificação.
As séries temporais frequentemente contêm ruído, redundâncias ou informações irrelevantes. Como resultado, a maioria das características extraídas não será útil para a tarefa de aprendizado de máquina em questão.
Para evitar a extração de características irrelevantes, o pacote TSFRESH possui um procedimento de filtragem embutido. Esse procedimento de filtragem avalia o poder explicativo e a importância de cada característica para as tarefas de regressão ou classificação em questão.
Ele é baseado na teoria bem estabelecida de testes de hipóteses e utiliza um procedimento de testes múltiplos. Como resultado, o processo de filtragem controla matematicamente a porcentagem de características irrelevantes extraídas.
O pacote TSFRESH é descrito no seguinte artigo de acesso aberto:
O algoritmo FRESH é descrito no seguinte whitepaper:
Modelos de normalidade simulam como os humanos detectam anomalias em séries temporais:
Teh, H.Y., Wang, K.I-K., Kempa-Liehr, A.W. (2021). Expect the Unexpected: Unsupervised feature selection for automated sensor anomaly detection. IEEE Sensors Journal 15.16, p. 18033-18046, doi: 10.1109/JSEN.2021.3084970.
Teh, H.Y., Wang, K.I-K., Kempa-Liehr, A.W. (2025). Feature-based normality models for anomaly detection. Sensors 25.4757, p. 1-25, doi: 10.3390/s25154757.
A extração sistemática de características de séries temporais também funciona para problemas não supervisionados:
Devido ao fato de o tsfresh basicamente fornecer extração de características de séries temporais de forma gratuita, você pode agora se concentrar em projetar novas séries temporais, como, por exemplo, diferenças de sinais de medições síncronas, que fornecem características de séries temporais ainda melhores:
Kempa-Liehr, A.W., Oram, J., Wong, A., Finch, M., Besier, T. (2020). Feature engineering workflow for activity recognition from synchronized inertial measurement units. In: Pattern Recognition. ACPR 2019. Ed. by M. Cree et al. Vol. 1180. Communications in Computer and Information Science (CCIS). Singapore: Springer, p. 223–231. doi: 10.1007/978-981-15-3651-9_20.
Simmons, S., Jarvis, L., Dempsey, D., Kempa-Liehr, A.W. (2021). Data Mining on Extremely Long Time-Series. In: 2021 International Conference on Data Mining Workshops (ICDMW). Ed. by B. Xue et al. Los Alamitos: IEEE, p. 1057-1066. doi: 10.1109/ICDMW53433.2021.00137.
A engenharia sistemática de características de séries temporais permite trabalhar com amostras de séries temporais de diferentes comprimentos, porque cada série temporal é projetada em um espaço de características bem definido. Essa abordagem permite o projeto de algoritmos robustos de aprendizado de máquina em aplicações com dados ausentes.
O seu problema de classificação de séries temporais é desbalanceado? Há uma boa chance de que a subamostragem das matrizes de características de séries temporais resolva o seu problema:
Você não trabalha com séries temporais, mas com imagens 2D e 3D? Sequências de variação espacial (SVS) são uma excelente aplicação do tsfresh:
Jeune, H., Pechan, N., Reitsma, S., Kempa-Liehr, A.W. (2021). Spatial Variation Sequences for Remote Sensing Applications with Small Sample Sizes. In: 2024 Image and Video Technology. 11th Pacific-Rim Symposium, Ed. by W.Q. Yan et al., Lecture Notes in Computer Science (14403). Springer Nature: Singapore, p. 153-166. doi: {10.1007/978-981-97-0376-0_12.
Koptev, I., Tian, J., Peel, E., Parker, R., Walker, C., Kempa-Liehr, A.W. (2025). Interpretable Dimensionality Reduction in 3D Image Recognition with Small Sample Sizes. Journal of Nondestructive Evaluation 44.44, p. 1-12, doi: 10.1007/s10921-025-01183-z.
O processamento de linguagem natural de textos escritos é um exemplo de aplicação da engenharia sistemática de características de séries temporais a sequências de eventos, descrito no seguinte artigo de acesso aberto:
O TSFRESH tem vários pontos fortes, por exemplo
Se você está interessado nos detalhes técnicos, consulte nossa documentação abrangente no Read-The-Docs em http://tsfresh.readthedocs.io.
O algoritmo, especialmente a parte de filtragem, também é descrito no artigo mencionado acima.
Agradecemos qualquer contribuição. Se você tiver interesse em nos ajudar a tornar o TSFRESH o maior arquivo de métodos de extração de características em Python, basta acessar nossas instruções em How-To-Contribute.
Se você quiser experimentar o tsfresh rapidamente ou integrá-lo ao seu fluxo de trabalho, também temos uma imagem docker disponível:
docker pull nbraun/tsfresh
Se você precisar reproduzir ou atualizar características de séries temporais que foram calculadas com os calculadores de características matrixprofile, você precisa criar um ambiente Python 3.8:
conda create --name tsfresh__py_3.8 python=3.8
conda activate tsfresh__py_3.8
pip install tsfresh[matrixprofile]
A pesquisa e o desenvolvimento do TSFRESH foram financiados em parte pelo Ministério Federal Alemão de Educação e Pesquisa, sob o número de subsídio 01IS14004 (projeto iPRODICT).