Spero che sappiate aiutarmi, sto scrivendo un programma al pc per valutare, in base ad una serie di risultati, quali fra tanti utenti siano i migliori (intendendo con il termine migliori coloro che continueranno ad avere risultati positivi nel breve/medio termine).
Ho una serie di risultati con associati punteggi, ho pensato di creare 3 gruppi:
1) gli ultimi 20 risultati conseguiti ed il punteggio totalizzato;
2) gli ultimi 100 risultati conseguiti ed il punteggio totalizzato;
3) il punteggio globale totalizzato ed in tutti eventi a cui l'utente ha partecipato;
Vorrei dare un peso così distribuito: 50% al punto 3) , 30% al punto 2), e 20% al punto 1).
Vorrei anche avvantaggiare gli utenti che hanno partecipato a più eventi (quindi agendo sul punto 3).
Alcuni risultati sono ad esempio
Utente A : 291.21(20) 976.57(100) 245.41(225) --> quest'utente ha totalizzato molti punti negli ultimi 100 eventi però la somma dei punti conseguiti in tutti gli eventi a cui ha partecipato (225) è di soli 245.41. (Naturamente partecipando ai vari eventi si può anche ottenere punteggi negativi)
Utente B: -309.86(20) 87.98(100) 4262.15(1894) --> quest'utente ha un'expected value di 4262.15/1894 = 2.25 punti / evento nel lungo termine, però negli ultimi 20 eventi ha ottenuto un punteggio negativo (-309.86)
Ora la funzione che avevo in mente per valutare i vari utenti era qualcosa tipo:
- Codice: Seleziona tutto
ln(numero totale di eventi) * ln((punteggio totale/numero totale eventi)) + ln(100) * ln((punt. dei 100 eventi / 100)) + ln(20) * ln((punteggio dei 20 eventi / 20))
Però in pratica questa funzione è inutilizzabile dato che quando ci sono valori negativi è impossibile trovare il logaritmo naturale.
Avete qualche idea??
Vi ringrazio in anticipo




