Hello,
I’d like to do offline concat/mosaicing. As a sanity check I decided to just use mubu.track to get the actual matrix columns and do a search with KNN to find the corresponding segment in the same track. Since I’m inputing a list into KNN that has an exact match, I figured it should be able to find the corresponding segment easily. What I’ve found is that KNN is unable to find the correct segment, and also if I search with only 2 matrix columns (for example frequency mean and energy mean) it performs significantly better (but still doesn’t usually find the right segment). Usually the distance when using more than 2 columns is around 20.
My question is: surely I’m doing something horribly horribly wrong, right?
I have some understanding of how KNN should work, I think, but maybe I’m missing something crucial?
Here’s my patch (I labeled everything important in pink and hid the other stuff away so it’s easy to reproduce my problem, and put comments with numbers to indicate the order to do things to reproduce my problem). https://pastebin.com/26CAhL6j
Thank you so much for your time.
All the best,
Greg
Edit: I looked into a bit more - https://stackoverflow.com/questions/5751114/nearest-neighbors-in-high-dimensional-data
Seems like knn loses effectiveness in more dimensions, I’m guessing the knn object is meant for real time so it is less focused on finding the best match and is instead trying to find the fastest “good enough” match. What are my options for trying to do mosaicing offline as accurately as possible? I suppose I might just work out a brute force method since I don’t mind waiting super long for it to be done, I just want it to sound cool. If anyone has any advice or knows of anything that does this, or anything at all, please let me know.