Newsgroup: it.hobby.scacchi
Titolo: Risultato a sorpresa

Ciao.
Secondo voi quando un risultato di una partita a scacchi puo'
considerarsi una "Sorpresa" ?
- Quando l'ELO di un giocatore supera l'ELO dell'altro giocatore e perde ?
- Quando l'ELO del vincitore e' del 30% inferiore al perdente, per esempio ?
- o altro ?
 
Grazie Ciao.
Giovanni.

 considerarsi una "Sorpresa" ?
 
 
Una domanda davvero bizzarra.
 
Il risultato atteso di una partita di scacchi si puo' decentemente 
calcolare in termini probabilistici. Ad esempio, si puo' calcolare la 
probabilita' che un giocatore che ha 250 punti Elo in meno di un altro 
vinca in una singola partita. Oppure che il match su quattro partite di 
due giocatori di pari Elo termini 4-0.
 
Quindi, tutto sta nel definire il termine "sorpresa".
 
Volendo, la domanda si puo' rivoltare in termini non scacchistici. Posto 
che se lanci N monete e ti esce per tutte testa non e' affatto una 
sorpresa nel caso N=1, secondo te per quale valore di N comincia ad 
essere una sorpresa? Ad esempio, quando lancio N=3 monete e sono tutte 
testa? Oppure N=6? Oppure N=10?
 
Ciao, Bruno.
 
 

Ciao Bruno
Grazie per la risposta.
 
In pratica sto cercando di implementare, in un mio programma
che gestisce i Tornei all'Italiana, la voce;
 
"Mostra i risultati a Sorpresa"
 
E' un po' una curiosita', la mia, quella di visualizzare quali partite
sono state "una sorpresa" in un torneo (parlo delle "singole" partite).
 
Puo' essere una sorpresa che un ELO 1400 patti con un ELO 2000.
Puo' anche essere sorpresa una vittoria di un 1600 che vinca con un 2100.
 
Adesso guardo un po' le formule dei "risultati attesi"
e probabilita', vediamo se riesco a definire una "soglia"
nella quale considerare una partita come "Sorpresa".
 
Grazie, qualsiasi consiglio e' ben accetto.
Grazie ciao,
Giovanni
 

 "Mostra i risultati a Sorpresa"
 
 
Ok, ora e' piu' chiaro, provero' a dirti la mia. La faro' il piu' 
semplice possibile, anche se la questione non e' affatto banale.
 
Intanto, in riferimento al tuo post originario:
- Se lo scrivi in un programma, ricordati che si chiama Elo, e non ELO. 
E' un nome di persona, non una sigla.
- Attento a non definire soglie di "sorpresa" troppo basse, come nel 
primo esempio. "L'Elo di un giocatore supera l'Elo dell'altro giocatore 
e perde", include ad esempio un 1510 che perde con un 1500, ed eventi 
del genere sono ovviamente frequentissimi.
- Dimenticati anche il secondo esempio, "quando l'Elo del vincitore e' 
del 30% inferiore al perdente". Ricorda che con l'Elo si ragiona sempre 
e solo in termini di differenze.
 
Partiamo dal caso piu' semplice, che riguarda le partite finite in 
vittoria. Trascuriamo per ora le patte e la differenza tra 1-0 e 0-1 
(ossia se la vittoria e' avvenuta di Bianco o di Nero).
 
In questo caso, la regola per calcolare la probabilita' Pv di fare un 
risultato di 1/1 è data dalla classica tabella Elo, che il tuo programma 
certamente ha da qualche parte. E a questo punto deve decidere l'utente 
dove si colloca il suo livello di "sorpresa", e nel tuo programma 
potresti rendere questo valore modificabile. Un teorico di statistica 
metterebbe come default Pv=5%, che e' quello che si definisce un evento 
improbabile in misura "ragionevolmente significativa".
 
Io pero' sospetto che questo valore (che corrisponde ad una vittoria in 
presenza di una differenza di Elo di circa 470 punti) dal punto di vista 
"psicologico" e' troppo "sorprendente", e quindi la maggior parte degli 
utenti sceglierebbero un valore di Pv superiore. Cosi' ad occhio, 
scommetterei che molti sceglierebbero qualcosa tipo Pv=15%, che 
corrisponde comunque ad una vittoria con un giocatore quasi 300 punti 
Elo piu' forte.
 
Ora infiliamoci anche le patte, anche se qui il discorso si complica. 
Infatti, anche se la probabilita' di vittoria di un giocatore con Elo 
1500 contro un 1800 e' teoricamente la stessa di quella di un 2500 
contro un 2800 (sempre perche' vale solo la differenza, non altro), e' 
ben noto che al crescere dell'Elo le patte sono piu' frequenti delle 
vittorie. Quindi a rigore la teoria dell'Elo non ti basta piu', e ti 
occorre andare a vedere le statistiche su partite reali giocate.
 
Io pero' al posto tuo trascurerei il fatto che dipende in misura 
crescente dall'Elo, e userei una regola empirica molto rozza che dice 
che grosso modo le probabilita' di patta sono il doppio di quelle di 
vittoria. Quindi, se ad esempio l'utente ha scelto Pv=15%, includerei 
tra le "sorprese" anche le patte in partite con avversari con i quali si 
aveva in teoria Pv<=7.5% (che corrisponde ad patta con un giocatore piu' 
forte di poco piu' di 400 punti Elo).
 
E ora infiliamoci anche la differenza tra giocare con Bianco o con Nero. 
In questo caso, non solo ci troviamo al di fuori delle tabelle Elo, ma 
non mi risulta che esistano neanche regole empiriche rozze da 
utilizzare. Di nuovo, se vuoi fare le cose per benino, dovresti trovare 
le statistiche su partite reali. Io pero' al posto tuo questo caso 
semplicemente lo trascurerei.
 
Ciao! Bruno
 
 
 

Ciao Bruno.
Grazie 1000 !!!
Sei stato illuminante.
 
Al momento ho "programmato" una differenza di:
- 100 Elo per i risultati di vittoria/sconfitte e una differenza di
- 200 Elo per le patte.
 
Devo dire che tra tutte le partite dispotate mi "tira fuori, effettivamente, le sorprese.
 
Ecco in dettaglio le partite con sorpresa che visualizza il programma, con i parametri impostati:
 
Terenzi Flavio      Di Maria Giovanni     1446  1566 Risultato: 1-0
Cassaro Antonio     Turco Francesco       1371  1625 Risultato: 1/2-1/2
Turco Francesco     Palumbo Carmelo       1625  1482 Risultato: 0-1
Savarino Matteo     Polizzi Antonio       1425  1999 Risultato: 1-0  <<----
Chiodo Cataldo      Savarino Matteo       1568  1425 Risultato: 0-1
Chiodo Cataldo      Orlando Santo         1568  1440 Risultato: 0-1
 
Altri risultati nell'intervallo piu' ristretto non vengono considerati.
 
Ti ringrazio tantissimo. A presto.
Giovanni
 
 

le statistiche su partite reali giocate.
 
c'è anche un altro fattore da tenere in conto (che mi è venuto in mente 
osservando i dati forniti da Giovanni, che riguardano quasi tutti NC o 
comunque <1500), ovvero l' "attendibilità" dell'Elo.
Per giocatori con poche partite, ma più ancora per i giovani, non è raro che 
l'Elo c'entri molto poco con l'effettiva forza di gioco: in particolare gli 
U18 che hanno K = 40 spesso e volentieri hanno degli alti e bassi che più 
che scacchisti sembrano surfisti: il mese prima hanno tot, il mese dopo 
+200, quello dopo ancora -150.
Forse si potrebbe inserire un peso all'Elo in base a età, K, partite 
registrate, ecc.
 
ciao
C. 
 

 
 
I miei due cent..
 
Il problema è banale per chi conosce un minimo di machine learning.
Basta prendere un gran numero di partite e fare una regressione con, mettiamo,
un softmax.
 
Ciao!
 

 
 
Secondo me hai tenuto la soglia troppo bassa, alcuni dei risultati che ne possono venir fuori non sono poi delle grandi sorprese. 
Per esempio dei 6 risultati che hai riportato direi che senza dubbio è una sorpresa il 4° risultato, il 2°e il 3° già non le definirei sorprese particolari, il 1°, il 5° e il 6° non mi sembrano proprio delle sorprese.
 
Chiaramente dipende anche da cosa intende uno per "sorpresa": io a naso direi che deve essere una cosa con una probabilità inferiore al 10%, o giù di li. Che equivale a dire che solo una partita su 10 (circa) deve dare un risultato a sorpresa.
 
Comunque, indipendentemente da come tu consideri un risultato a sorpresa, puoi tarare le soglie in questo modo:
1) stabilisci che i risultati a sorpresa devono essere mediamente X% del totale
2) ti scarichi da internet i risultati di un po' di tornei (ne trovi a pacchi, anche tornei di basso livello)
3) applichi a quei tornei i tuoi algoritmi, provando a variare le soglie fino a che non ottieni risultati che ti sembrano sensati, ovvero che si avvicinano a quel X% di risultati a sorpresa che hai stabilito.
 


Ciao, potresti usare il sistema che avevo inventato per il totocalcio un 
millemila  anni fa.
Si parte da un calcolo della probabilità di vinta-patta-persa per ogni 
incontro calcolando la differenza punti (io usavo i punti in classifica 
delle squadre più un fattore correttivo in casa/fuori casa), tali valori 
venivano calcolati sulla base delle performance in casa/fuori casa delle 
squadre (ma non ricordo assolutamente la formula, dovrei andare a cercare).
 
A questo punto dividevo in 7 fasce di probabilità gli incontri, e 
consideravo vere sorpresone i risultati delle prime due fasce di 
probabilità bassa. Tipo Juventus in casa contro Acquapozzillo, 90% per 
l'uno, 8% per la X e 2% per il due.
 
E' lì che ho capito che il Totocalcio era taroccato e ho smesso di 
giocare... troppe sorprese "impossibili"...
 
 
Dan
-- 
"Everybody should pay taxes with a smile"
I tried, but they want money.

 - 200 Elo per le patte.
 
 
Questa soluzione e' pratica, ma concettualmente non mi piace. La 
probabilita' di vittoria e quella di patta sono agganciate tra loro, 
almeno in linea di principio. Quindi il parametro da fissare dovrebbe 
essere unico.
 
Ciao, Bruno.
 
 

Grazie a tutti per il Vs. intervento.
Giovanni