Mam aplikację Django, w której potrzebuję zastosować prosty algorytm trendingu/rankingu. Jestem bardzo zagubiony jako:Decydowanie i implementacja algorytmu wyznaczania trendów w Django
Mam dwa modele, Book
i Reader
. Każdej nocy nowe książki są dodawane do mojej bazy danych. Liczba czytników każdej książki jest aktualizowana również każdej nocy, tzn. Jedna książka będzie miała wiele rekordów statystycznych czytnika (jeden rekord na każdy dzień).
W danym okresie (ostatni tydzień, ostatni miesiąc lub ostatni rok) chciałbym wymienić najpopularniejsze książki, jaki algorytm należy do tego użyć?
Popularność w żaden sposób nie musi być w czasie rzeczywistym, ponieważ liczba czytelników każdej książki jest aktualizowana tylko codziennie.
Znalazłem jeden artykuł, który został wymieniony w innym SO post that showed how they calculated trending Wikipedia articles, ale post tylko pokazał, jak obliczono bieżący trend.
Jak ktoś wskazał na SO, jest to bardzo prosty podstawowy algorytm trendów i oblicza tylko nachylenie między dwoma punktami danych, więc domyślam się, że pokazuje on trend między wczoraj i dziś.
ja nie szukam uber złożonego algorytmu trendów, takich jak te stosowane na Hacker News, Reddit, itp
mam tylko dwie osie danych, hrabia czytelnik i datą.
Wszelkie pomysły na temat tego, co i jak powinienem wdrożyć. Dla kogoś, kto nigdy nie pracował z jakąkolwiek statystyką/algorytmem, wydaje się to bardzo zniechęcającym przedsięwzięciem.
Z góry dziękuję wszystkim.
HI Wilduck, sprawdziłem obliczenia EWMA, które przepisałeś. To wydaje się być dobrym rozwiązaniem dla mojego problemu. Jestem zdezorientowany, jak obliczyć wartość alfa "α". Czy masz jakieś pomysły, jak mogę to obliczyć? –
@MridangAgarwalla Dobre wiadomości! Nie musisz tego obliczyć! Możesz wybrać dowolną liczbę od zera do jednej, gdzie liczba bliższa jednemu z rabatów starszych obserwacji jest szybsza. Twój wybór będzie zależał od tego, ile chcesz zdyskontować starszych wartości, abyś mógł bawić się nim, dopóki nie znajdziesz czegoś, co ci się podoba. – Wilduck
Mimo to myślę, że prosta średnia krocząca (taka, która nie jest ważona wykładniczo) może działać równie dobrze dla twoich celów. Sugerowałbym najpierw wdrożenie prostszej wersji, a następnie zamianę wersji ważonej wykładniczo, jeśli uznasz, że nie jest zadowalająca. – Wilduck