Pracuję nad systemem rankingowym, który uszereguje wpisy na podstawie głosów oddanych przez pewien czas. Szukam algorytmu, który obliczy wynik, który jest trochę jak średnia, ale chciałbym, aby faworyzował nowsze wyniki niż starsze. Myślałem o czymś w rodzaju:
Zastanawiałem się, czy istnieją inne algorytmy, które są zwykle używane w takich sytuacjach, a jeśli tak, czy mógłbyś je wyjaśnić?
algorithms
data-mining
Logan Besecker
źródło
źródło
Odpowiedzi:
Możesz użyć dowolnej funkcji, która nadaje mniejszą wagę starszym wpisom. Na przykład, jeśli dane składają się z wyników, , gdzie indeks odpowiada „czasowi nadejścia” wpisu, to znaczy, że nowsze wpisy mają większe indeksy, wówczas można użyć funkcji wagi, która zwiększa się, gdy: rośnie. Tak więc zadziała każda funkcja „zwiększania”. Przykłady obejmują:s1, ... ,sn ja
itp.
Wtedy twoja funkcja będzie
Właściwie bardziej sensowne jest nadanie najnowszemu wpisowi najniższego indeksu i zmniejszenie funkcji wagi. W ten sposób możesz go dostroić, ustawiając wagę, którą chcesz nadać pierwszemu elementowi.
Wikipedia ma wpis na temat funkcji ważenia , niektóre przykłady można znaleźć na stronie o środkach ważonych .
źródło