¿Cuál es la lógica detrás de la fórmula utilizada en el programa hive_trend_mapper.py
de this Hadoop tutorial al calcular las tendencias de Wikipedia?Algoritmos de comprensión para medir tendencias
realidad, hay dos componentes: una tendencia mensual y una tendencia diaria. Me voy a centrar en la tendencia diaria, pero se aplican preguntas similares a la mensual.
En la tendencia diaria, pageviews
es una matriz de número de páginas vistas por día para este tema, uno de los elementos por día, y total_pageviews
es la suma de esta matriz:
# pageviews for most recent day
y2 = pageviews[-1]
# pageviews for previous day
y1 = pageviews[-2]
# Simple baseline trend algorithm
slope = y2 - y1
trend = slope * log(1.0 +int(total_pageviews))
error = 1.0/sqrt(int(total_pageviews))
return trend, error
Yo sé lo que está haciendo superficialmente: sólo se ve en el cambio en el último día (slope
), y las escalas de este hasta el registro de 1+total_pageviews
(log(1)==0
, por lo que este factor de escala es no negativo). Se puede observar como el tratamiento de páginas vistas totales del mes como un peso, pero templado a medida que crece - de esta manera, las páginas vistas totales dejar de hacer una diferencia para las cosas que son "suficientemente popular", pero al mismo tiempo grandes cambios en insignificante don' se pesa tanto.
Pero ¿por qué hace esto? ¿Por qué queremos descontar cosas que inicialmente eran impopulares? ¿No deberían importarse los deltas grandes más para los artículos que tienen una baja popularidad constante, y menos para los artículos que ya son populares (para los cuales los grandes deltas podrían caer dentro de una fracción de una desviación estándar)? Como un hombre de paja, ¿por qué no simplemente tomar y2-y1
y terminar con eso?
¿Y para qué sirve el error
? El tutorial realmente no lo usa significativamente nuevamente. Por otra parte, tampoco nos dice cómo se usa trend
: esto es lo que se traza en el producto final, ¿correcto?
¿Dónde puedo leer para obtener una (preferentemente de introducción) de fondo en la teoría aquí? ¿Hay un nombre para esta locura? ¿Es esta una fórmula de libro de texto en alguna parte?
Gracias de antemano por las respuestas (o discusión!).
Bien, entendí su mecánica. Simplemente no estoy de acuerdo con que sea intuitivo decir que el crecimiento de B se debe pesar menos que las A, aunque B no es tan popular, también hay algo que decir acerca de su aumento relativo y repentino de los clics; por el contrario, el crecimiento de A cae dentro de su desviación estándar, y debe verse como menos significativo.Supongo que esta fórmula en particular es más una medida de la popularidad de la línea de base. En cuanto a libros, realmente esperaba recomendaciones específicas. – Yang