Comments

You must log in or register to comment.

Peantoo t1_j0e1tlq wrote

This could probably be done without machine learning... but why bother? Machine learning is great!

I did something similar once, but I wrote code to turn the waveforms into composite images, then just ran those through an image classifier since all I had to do was repurpose a previous object recognition project that used Keras.

Tons of ways this can be done, just experiment!

3

Tavallist OP t1_j0e58g4 wrote

Love your enthusiasm! The composite images do sound really interesting for this application. Wonder how it would perform with larger noise levels in the network. Anyway I have no idea how these work, but I'll do my research, thanks!

1

Peantoo t1_j0epnqi wrote

Run it through some denoisers like a VAE or something! But honestly, if you have labeled data, it should be able to handle noise just fine, especially if the features are evident.

2

Zeraphil t1_j0e7c5v wrote

A couple of ways come to mind;

Template matching https://en.wikipedia.org/wiki/Template_matching

Disregard that the wiki mentions image processing specifically, you can definitely do this with time series data.

grab features of a model wave, then calculate features of subsequent data and match, many ways to do this, you weren’t far off with KNN, maybe try PCA features, wavelets, or FFTs.

Or look at other techniques and think about how to map the featurization of your data to the matching model.

3

PredictorX1 t1_j0dkm9h wrote

I suggest trying to come up with simple summaries of the data to use as features. Also, I suggest attempting a relatively simple model first, such as linear discriminant or logistic regression. How many examples do you have of each of the 10 waveforms?

2

omtallvwls t1_j0e1xtc wrote

Magnitude FFT or PSD of each waveform would likely be a good set of features.

3

Tavallist OP t1_j0e44yt wrote

Thanks for the advice, it sounds promising and I'll definitely give it a go, but I gotta learn how to walk first!

1

Tavallist OP t1_j0dlf72 wrote

Thanks a lot, I'll look into it, unfortunately I only have one example each, I currently just need it to tell me which if which when I run one of the examples through. Edit: Also how do I implement logistic regression if I have 10 possible outputs instead of just yes/no?

1

RabbitChooseCarrot t1_j0e9j5w wrote

You can also look into discrete wavelet transforms - while typically more helpful to reduce dimensionality of longer signals (I've used it for 8000-data-point-pong signals), it may also work here. Here's a nice guide I have come across in the past: https://ataspinar.com/2018/12/21/a-guide-for-using-the-wavelet-transform-in-machine-learning/, and here's a streamlit app I once built as a gentle intro to DWT after learning about it: https://intro-to-wavelets.streamlit.app/

2