Pregunta

Para encontrar temas de tendencias, utilizo el puntaje estándar en combinación con un promedio móvil:

z-score = ([current trend] - [average historic trends]) / [standard deviation of historic trends]

(Muchas gracias, Nixuz )

Hasta ahora, lo hago de la siguiente manera:

Cualquiera sea el momento, para las tendencias históricas, simplemente vuelvo las 24 horas. Asumiendo que tenemos el 12 de enero a las 3:45 pm ahora:

current_trend = hits [11 de enero, 3:45 - 12 de enero, 3:45]

historic_trends = visitas [10 de enero, 3:45 - 11 de enero, 3:45] + visitas [9 de enero, 3:45 - 10 de enero, 3:45] + visitas [8 de enero, 3:45 - 9 de enero , 3:45] + ...

¿Pero es esto realmente adecuado? ¿No sería mejor si siempre empecé a las 00:00 en punto? Por ejemplo, de esta manera para los mismos datos (3:45 pm):

current_trend = hits [11 de enero, 0:00 - 12 de enero, 0:00]

historic_trends = visitas [10 de enero, 0:00 - 11 de enero, 0:00] + visitas [9 de enero, 0:00 - 10 de enero, 0:00] + visitas [9 de enero, 0:00 - 9 de enero , 0: 0] + ...

Estoy seguro de que los resultados serían diferentes. ¿Pero qué enfoque le dará mejores resultados?

Espero que hayas entendido mi pregunta y puedas ayudarme. :) Gracias de antemano!

¿Fue útil?

Solución

Creo que el problema que puede estar viendo con su implementación actual es que los temas que estuvieron de moda hace 23 horas están influyendo en su clasificación en este momento. El problema que veo con su nueva implementación propuesta es que está limpiando la pizarra a la medianoche, por lo que los temas que estuvieron calientes la noche anterior no parecerán calientes a la mañana siguiente (pero deberían hacerlo).

Le sugiero que busque implementar un algoritmo de estilo Digg donde la intensidad de un tema decaiga con la edad. Puede hacer esto contando los hits / hora para cada uno de los últimos períodos de 24 horas y luego dividir cada puntaje del período entre cuántas horas tuvo lugar el período. Sume los 24 períodos para obtener la puntuación.

hottness = (puntaje24 / 24) + (puntaje23 / 23) + ... + (puntaje2 / 2) + puntaje1

Donde score24 es el número de " hits " que un tema llegó en el período de una hora que ocurrió hace 24 horas (tal vez no exactamente los resultados, sino el puntaje normalizado para esa hora).

De esta forma, los temas que estuvieron calientes hace 24 horas aún se contarán en su algoritmo, pero no tanto como los temas que estuvieron calientes hace una hora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top