Tengo una aplicación Django en la que necesito implementar un algoritmo simple de tendencias/clasificación. Estoy muy perdido como:Decidir e implementar un algoritmo de tendencias en Django
Tengo dos modelos, Book
y . Todas las noches, nuevos libros se agregan a mi base de datos. El número de lectores de cada libro también se actualiza todas las noches, es decir, un libro tendrá múltiples registros de estadísticas de lectores (un registro por cada día).
Durante un período determinado (la semana pasada, el mes pasado o el año pasado), me gustaría enumerar los libros más populares, ¿qué algoritmo debo usar para esto?
La popularidad no tiene que ser en tiempo real de ninguna manera porque el recuento de lectores de cada libro solo se actualiza diariamente.
Encontré un artículo al que se hizo referencia en otro SO post that showed how they calculated trending Wikipedia articles pero la publicación solo mostraba cómo se calculaba la tendencia actual.
Como alguien señaló en SO, es un algoritmo de línea de base muy simple y solo calcula la pendiente entre dos puntos de datos, así que supongo que muestra la tendencia entre ayer y hoy.
No estoy en busca de un algoritmo complejo de tendencias súper como los utilizados en Hacker News, Reddit, etc.
sólo tengo dos ejes, el recuento de datos lector y fecha.
Cualquier idea sobre qué y cómo debo implementar. Para alguien que nunca ha trabajado con nada relacionado con estadísticas/algoritmos, esto parece ser una tarea muy desalentadora.
Gracias de antemano a todos.
HI Wilduck, he estado buscando en el cálculo de EWMA que prescribió. Eso parece una buena opción para mi problema. Estoy confundido en cuanto a cómo calcular el valor de alfa 'α'. ¿Tienes alguna idea de cómo puedo calcular esto? –
@MridangAgarwalla ¡Buenas noticias! ¡No tienes que calcularlo! Puede elegir cualquier número entre cero y uno, donde un número más cercano a uno descuenta las observaciones anteriores más rápido. Su elección dependerá de cuánto desee descontar los valores anteriores, para que pueda jugar con ellos hasta que encuentre algo que le guste. – Wilduck
Dicho esto, creo que un promedio móvil simple (uno que no está ponderado exponencialmente) podría funcionar igual de bien para sus propósitos. Sugeriría implementar la versión más simple primero, y luego intercambiar en la versión ponderada exponencialmente si encuentra que no es satisfactoria. – Wilduck