In this short post we'll take a project that uses Edge Implulse and a Neural Network to classify Covid patients' health and implement it using a completely different approach: a sliding window with basic statistics (min/max/mean/std).
At the end of the post you may be wandering: "do I really need Neural Networks?"
A few days ago, user @Manivannan published a post titled Covid Patient Health Assessing Device Using Edge Impulse, where he proposed a prototype of medical device able to detect if a Covid patient is stable, critical or deteriorating.
Scrolling down at the results section, I saw a stunning 100% classification accuracy and my reaction was "Wow, 100% accuracy is really impressive: either the model is very good or the data is very easy".
If you're a reader of this blog, you know I've my personal (bad) opinion about Neural Networks, so I wanted to replicate the exact same project with a totally different approach. I'm a fan of Decision Trees and Random Forest, so I built a setup that could help me apply these "traditional" Machine Learning models to the given dataset.
This is the first of a series of posts I'm willing to write that fall into the "you may not need Neural Networks" category, where I'll showcase a few examples of traditional Machine Learning solving the same problems where Neural Networks are used instead.
I soon realized that time-series analysis is a broad topic that covers many application scenarios (IMU gesture classification, vibration pattern classification, ...), so I settled to create a reusable component that will serve many purposes.
I wrapped this component into a Python package called
embedded_window that does 2 things:
- applies a sliding window to the input data and computes simple statistics (min/max/mean/std...)
- transpiles to plain C++, so you can use it in your Arduino projects
To showcase the use of this package, I borrowed from @Manivannan's notebook and created my personal one.
Do you think that, sometimes, you may not need Neural Networks?