2009-06-15 17 views
9

Questa domanda è più legata alla logica di qualsiasi linguaggio di programmazione. Se la domanda non è adatta per il forum, per favore fatemelo sapere e lo cancellerò.Come calcolare i punteggi?

Devo scrivere una logica per calcolare i punteggi per i blog per un sito Web del Blog Award. Un blog può essere nominato per più categorie di premi ed è peer-reviewed o valutato da una giuria su una scala da -1 a 5 (-1 per indicare un blog che non amano assolutamente). Ora, un blog può essere valutato da uno o più giurati. Un criterio mentre si calcola il punteggio finale per un blog è che se un blog viene valutato positivamente da più persone dovrebbe ottenere più peso (e viceversa). Allo stesso modo un blog valutato -1 anche da un giurato dovrebbe avere il suo punteggio influenzato (-1 è una specie di Veto qui). Infine, voglio anche avere un punteggio aggiuntivo basato sul rango Technorati del blog (in modo che il punteggio finale sia basato su un mix di valutazione Juror + classifica Technorati).

Esempio: un blog è classificato nella categoria A da un totale di 6 giurati. 2 lo valutano a 3, 3 lo valutano a 2 e 1 lo valutano a 4. (Ho usato per calcolare il punteggio come (2 * 3 + 3 * 2 + 1 * 4)/6 = 16/6 = 2,67 per essere pesato nella media, ma non ne sono soddisfatto, principalmente perché non funziona bene quando un punteggio di Juror è -1. Inoltre, ho bisogno di aggiungere anche i criteri di ranking ranking di Technorati).

Potrebbe aiutarmi a decidere il modo migliore per calcolare i punteggi finali (mantenendo il metodo di valutazione stessa di sopra di quella non può essere modificato ora)?

+0

Questa domanda sembra soddisfacente per SO. Stai chiedendo l'algoritmo "migliore" per assegnare i punteggi. – paxdiablo

+1

Domanda interessante, +1 – Mattis

+0

perché non dovresti semplicemente usare un 'se (i punteggi includono -1) {rimuovi dalla competizione}' prima del punteggio? Questo è più o meno ciò che significa un veto, giusto? – naught101

risposta

0

si potrebbe lavorare internamente con punteggi da 0 a 6. Basta fare un cambiamento per uno, calcolare il punteggio e spostare indietro. Immagino che il -1 abbia qualche effetto dirompente sul calcolo.

5

Se si vuole pesare l'effetto di un rating -1 più forte, utilizzare lo stesso calcolo della media punteggio, ma sostituire -10 ogni volta che vedi -1. Puoi scegliere un valore diverso da -10 se non vuoi che una valutazione negativa appesantisca fortemente.

+0

Grazie Greg.Cosa suggerisci sulla classifica di Technorati? E sei soddisfatto del modo in cui viene calcolata la media ponderata? – dchucks

+0

Non hai specificato quale sia la classifica di Technorati. È anche un valore compreso tra -1 e 5? O è qualcos'altro? Quanto fortemente vuoi pesare contro le classifiche dei tuoi giurati? Questi sono i tipi di domande a cui dovrai rispondere per determinare come usare anche quella classifica. –

+0

Greg, la classifica Technorati è un punteggio dato da Technorati.com a un sito web basato su vari fattori come traffico, Linkback ecc. Abbassa il valore di classifica, migliore è il sito. Quindi un sito con classifica Technorati 3000 è meglio di uno con una classifica 40000. – dchucks

4

Calcolare un punteggio basato sui voti sarà abbastanza semplice. Aggiungere il rango tecnorati sarà la parte difficile.

ho fatto un breve script che calcola alcuni punteggi sulla base di questo algoritmo

score = (vote_sum - (vetos * veto_weight))/number_of_votes 

è possibile modificare le paramters URL per ottenere valori diversi

Ci sono un sacco di cravatte, quindi forse si potrebbe usare technorati blog rango come un tie breaker

+0

Grazie a Galen per averlo dimostrato usando uno script. – dchucks

+0

+1 per la bella sceneggiatura :) – Mattis

4

si potrebbe guardare con il limite inferiore del Wilson punteggio intervallo per le tue valutazioni.

Vedere http://www.evanmiller.org/how-not-to-sort-by-average-rating.html per ulteriori dettagli. Anche se, lì, è usato per il caso più semplice di Bernoulli.

Il succo è che se avete un sacco di feedback si ha un più alto grado di fiducia nel vostro punteggio. È quindi possibile combinare i punteggi delle classifiche locali e le valutazioni Technorati, ponderando i punteggi per il numero di elettori localmente e su Technorati.

Quanto vuole una singola -1 voto avere alto impatto, solo riassociare ad un grande valore negativo proporzionale alla impatto desiderato prima di alimentare nella formula competenza.