2011-06-17 16 views
5

Szukam algorytmu do generowania histogramu na dużej ilości danych strumieniowych, maksymalna i minimalna nie są znane z góry, ale odchylenie standardowe i średnia w danym zasięg.Obliczanie histogramu danych transmisji strumieniowej - Obliczanie histogramu online

Doceniam Twoje pomysły.

Cheers,

+0

co przybliżone histogram? – CharlesB

+0

Miałem na myśli, że nie chcę mieć dokładnego histogramu (liczba elementów w każdym wiadrze nie musi być dokładna). –

+0

Zobacz także http://stackoverflow.com/questions/2464871/numpy-histogram-of-large-arrays – mtrw

Odpowiedz

2

Właśnie znalazłem jedno rozwiązanie. Sec. 2.2 "Tworzenie histogramu w trybie on-line z algorytmu A do przesyłania równoległego algorytmu decyzyjnego". Algo jest realizowany przez klasę NumericHistogram w projekcie Hive:

rodzajowe, wielokrotnego użytku klasa histogram który obsługuje częściowe agregacji. Algorytm heurystyczny jest przystosowany z poniższego papieru: Yael Ben-Haim i Elad Tom-Tov, "To strumieniowe drzewo równolegle decyzja algorytm", J. Machine Learning Badania 11 (2010), pp 849-. -872. Chociaż nie ma aproksymacji gwarancji, wydaje się, że działa dobrze z odpowiednimi danymi i dużą (np. 20-80) liczbą pojemników histogramu.

1

odchylenie standardowe i myśli nie mają znaczenia dla histogramu. Po prostu wybierz rozdzielczość i narysuj pasek tak wysoki, jak masz trafienia dla jego zasięgu. Będzie to oczywiście droższe przy wyższej rozdzielczości. Możesz spróbować dostosować rozdzielczość, próbując dopasować istniejące dane do normalnej krzywej (lub dowolnego modelu) i znaleźć odchylenie standardowe, aby wybrać rozsądną ziarnistość.

Edytuj: Przeczytaj źle za pierwszym razem. Jeśli znasz przybliżone odchylenie standardowe, możesz wybrać rozsądne rozmiary dla grup histogramu od początku. Wystarczy porównać każdy nowy wpis z bieżącym minimum i maksimum i odpowiednio dostosować swój zakres.