Pracuję nad algorytmem, który przyjmuje wektor najnowszego punktu danych z wielu strumieni czujników i porównuje odległość euklidesową z poprzednimi wektorami. Problem polega na tym, że różne strumienie danych pochodzą z zupełnie różnych czujników, więc przyjęcie prostej odległości euklidesowej dramatycznie przeceni niektóre wartości. Oczywiście potrzebuję sposobu na znormalizowanie danych. Ponieważ jednak algorytm jest zaprojektowany do działania w czasie rzeczywistym, nie mogę użyć żadnych informacji o żadnym strumieniu danych jako całości w normalizacji. Do tej pory śledziłem największą wartość widoczną dla każdego czujnika w fazie rozruchu (pierwszych 500 wektorów danych), a następnie dzieliłem wszystkie przyszłe dane z tego czujnika przez tę wartość. Działa to zaskakująco dobrze, ale wydaje się bardzo nieeleganckie.
Nie miałem szczęścia znaleźć wcześniej istniejącego algorytmu, ale może po prostu nie szukam odpowiednich miejsc. Czy ktoś wie o jednym? Czy masz jakieś pomysły? Widziałem jedną sugestię, aby użyć średniej biegu (prawdopodobnie obliczonej przez algorytm Wellforda), ale jeśli to zrobię, to wielokrotne odczyty tej samej wartości nie pojawią się jako takie same, co wydaje się dość dużym problemem, chyba że czegoś mi brakuje. Wszelkie myśli są mile widziane! Dzięki!
źródło