TinyDecisionTreeClassifier: Embedded C++ library for training and applying decision trees on the edge
Aleksei Karavaev,
Jan Hejda,
Patrik Kutilek,
Petr Volf,
Marek Sokol,
Lydie Leova
Affiliations
Aleksei Karavaev
Corresponding author.; Department of Health Care and Population Protection, Faculty of Biomedical Engineering, Czech Technical University in Prague, nam. Sitna 3105, 272 01 Kladno, Czech Republic
Jan Hejda
Department of Health Care and Population Protection, Faculty of Biomedical Engineering, Czech Technical University in Prague, nam. Sitna 3105, 272 01 Kladno, Czech Republic
Patrik Kutilek
Department of Health Care and Population Protection, Faculty of Biomedical Engineering, Czech Technical University in Prague, nam. Sitna 3105, 272 01 Kladno, Czech Republic
Petr Volf
Department of Health Care and Population Protection, Faculty of Biomedical Engineering, Czech Technical University in Prague, nam. Sitna 3105, 272 01 Kladno, Czech Republic
Marek Sokol
Department of Health Care and Population Protection, Faculty of Biomedical Engineering, Czech Technical University in Prague, nam. Sitna 3105, 272 01 Kladno, Czech Republic
Lydie Leova
Department of Health Care and Population Protection, Faculty of Biomedical Engineering, Czech Technical University in Prague, nam. Sitna 3105, 272 01 Kladno, Czech Republic
Machine learning and AI remain hot topics in research. However, most machine-learning models are trained and applied to big data. Major electronics parts manufacturers are actively working on simplifying the deployment of machine learning models to their chips. Software companies provide microcontroller code generation after the training data are uploaded to their platform. Unfortunately, most of the available open-source solutions do not support training models on the edge. The proposed TinyDecisionTreeClassifier is a standalone open-source C++ library that allows both training and deployment on the edge. This paper also covers the deployment and benchmark of the software performance and power consumption on some of the commonly used microcontrollers.