2011-06-17 20 views
5

Estoy buscando un algoritmo para generar un histograma sobre una gran cantidad de datos de transmisión, el máximo y mínimo no se conocen de antemano pero la desviación estándar y la media están en un particular distancia.Cálculo de un histograma en una transmisión de datos - Cálculo del histograma en línea

Agradezco sus ideas.

Saludos,

+0

¿qué es un histograma aproximado? – CharlesB

+0

Quise decir que no quiero tener el histograma exacto (la cantidad de elementos en cada segmento no tiene que ser exacta). –

+0

Vea también http://stackoverflow.com/questions/2464871/numpy-histogram-of-large-arrays – mtrw

Respuesta

2

Acabo de encontrar una solución. Segundo. 2.2 del documento "Construyendo un histograma en línea a partir de un algoritmo de árbol de decisión en paralelo con transmisión en línea". El algo es implementado por la clase NumericHistogram en el proyecto de la colmena:

A, reutilizable clase genérica histograma que soporta agregaciones parciales. El algoritmo es una heurística adaptado desde el siguiente documento: Yael Ben-Haim y Elad Tom-Tov, "Un streaming de árbol de decisión paralela algoritmo", J. Machine Learning Research 11 (2010), pp 849-. -872. Aunque no hay garantías de aproximación , parece funcionar bien con datos adecuados y un número grande (p. Ej., 20-80) de histogramas.

1

La desviación estándar y la media no tienen importancia para un histograma. Simplemente elija su resolución y dibuje una barra tan alta como tenga hits para su rango. Esto, por supuesto, se volverá más costoso con una resolución más alta. Puede intentar ajustar la resolución intentando ajustar los datos existentes en una curva normal (o el modelo que desee) y encontrar la desviación estándar para elegir una granularidad razonable.

Editar: Léelo mal la primera vez. Si conoce la desviación estándar aproximada, puede elegir tamaños razonables para sus grupos de histogramas desde el primer momento. Simplemente compare cada nueva entrada con su actual mínimo y máximo y ajuste su rango en consecuencia.