Ho implementato un semplice sistema di votazione up/down su un sito Web, e tengo traccia dei voti individuali oltre che del tempo di voto e dell'ID utente unico (hash IP).- Numero di voti vs Percentuale di voti?
La mia domanda non è come calcolare la percentuale o la somma dei voti - ma più, qual è un buon algoritmo per determinare un buon punteggio basato sui voti?
Trovo che l'ordinamento per percentuale di voto puro sia inaccettabile, così come il semplice aumento del numero di voti.
consideri questo esempio:
- Immagine A: 4 upvotes, 1 downvotes
- Immagine B: 5 upvotes, 4 downvotes
- Immagine C: 1 upvote, 0 downvotes
Il sistema ideale dovrebbe inserire A per primo, magari seguito da B e quindi C.
In uno scenario di pura percentuale, l'ordine è C> A> B. (errato) In uno scenario di conteggio dei voti puro, l'ordine è B> A> C. (errato)
Ho un'idea per un algoritmo un po '"ibrido" basato sulla fiducia del sistema in una partitura, forse qualcosa sulla falsariga di:
// (if totalvotes > 0, else score = 0)
score = 1 - ((downvotes+1/totalvotes+1) * sqrt(1/totalvotes))
Tuttavia, speravo di chiedere alla comunità se ci sono algoritmi davvero ben definite già là fuori che semplicemente non lo so, prima che io sedersi intorno a modificare il mio algoritmo da ora fino al tramonto.
Ho anche dati di data per ciascun voto. Tuttavia, il contenuto del sito non è molto sensibile al tempo, quindi non mi interessa affatto selezionare "what's hot".
[possibile duplicato] (http://stackoverflow.com/questions/9169143/finding-most-liked-item-of-a-user-with-rating-values)? Almeno la risposta è pertinente. – Anthales
Domanda brillante, devo dire :) –