Analysis on Python performance for data stream mining
Abstract
Resumo : A mineração de fluxos de dados é uma tarefa essencial na comunidade científica de hoje. A biblioteca mais famosa por executar tal tarefa em Python, Scikit-Multiflow, apresenta um grave problema de desempenho, em comparação com a biblioteca na qual foi inspirada, MOA, em Java. Python é uma linguagem de programação fácil de usar e suas bibliotecas melhoram a experiência do usuário, no entanto, com um custo para o desempenho. Com as ferramentas certas, as bibliotecas Python podem apresentar desempenho comparável a linguagens de baixo nível, como C / C ++. Este trabalho tem como objetivo realizar uma comparação da implementação de métodos do Scikit-Multiflow, com novas implementações em linguagens de baixo nível com uma interface em Python. Os resultados mostraram uma melhora significativa no desempenho original da biblioteca. Abstract : Data stream mining is an essential task in today’s scientific community. The most famous library for performing such a task in Python, Scikit-Multiflow, presents a severe performance problem, when compared to the library it was inspired on, MOA, written in Java. Python is an easy to use programming language, and its libraries implemented improves the user experience, however, with a performance cost. With the right tools, Python libraries can present performance comparable to low-level languages such as C/C++. This work performs a comparison of the implementation of methods from Scikit-Multiflow, with new implementations in low-level languages with a binding to Python. The results showed a significant improvement in the original performance of the library, while keeping the predictions and prediction results intact.