Preferencje ludzi i agregaty

Elo, Bradley-Terry i win rate

Aktualizacja: 11 października 2026

Od pojedynczych werdyktów do rankingu

Porównania parami („która odpowiedź jest lepsza") to najczystszy sygnał preferencji, ale surowe wyniki pojedynków trzeba zagregować. Trzy standardowe narzędzia: win rate, model Bradleya–Terry'ego i rating Elo.

Win rate — najprostszy agregat

WR=W+0.5⋅TW+T+LWR = \frac{W + 0.5 \cdot T}{W + T + L}

gdzie WW to wygrane, TT remisy, LL przegrane. Win rate jest czytelny, ale ignoruje kogo model pokonywał: 60% przeciw słabym przeciwnikom to mniej niż 55% przeciw mocnym. Karta: Win rate.

Bradley–Terry — model siły z pojedynków

Model zakłada, że każdy model ma ukrytą „siłę" rir_i, a prawdopodobieństwo wygranej ii nad jj wynosi:

P(i≻j)=erieri+erj=σ(ri−rj)P(i \succ j) = \frac{e^{r_i}}{e^{r_i} + e^{r_j}} = \sigma(r_i - r_j)

Parametry rir_i estymuje się metodą największej wiarygodności z macierzy pojedynków — tak ranking buduje Chatbot Arena (Chiang i in.). Pierwotny model pochodzi z psychofizyki (Bradley i Terry, Biometrika 1952). Karta: Elo / Bradley-Terry.

Elo — aktualizacja po każdej partii

Elo aktualizuje ratingi przyrostowo. Oczekiwany wynik i aktualizacja:

EA=11+10(RB−RA)/400,RA′=RA+K⋅(SA−EA)E_A = \frac{1}{1 + 10^{(R_B - R_A)/400}}, \quad R'_A = R_A + K \cdot (S_A - E_A)

gdzie SAS_A to faktyczny wynik (1 / 0.5 / 0), a KK współczynnik kroku. Historia i własności systemu: artykuł FIDE o ratingu Elo.

def elo(ra: float, rb: float, sa: float, k: float = 32.0):
    ea = 1 / (1 + 10 ** ((rb - ra) / 400))
    return ra + k * (sa - ea)
 
# A (1500) wygrywa z B (1500): sa = 1.0
print(elo(1500, 1500, 1.0))  # 1516.0

Pułapki agregatów

  • nietranzytywność — A wygrywa z B, B z C, ale C z A; żaden jednowymiarowy rating tego nie opisze;
  • małe próbki — win rate z 20 pojedynków ma szeroki przedział ufności; zawsze podawaj nn;
  • dobór par — wyniki zależą od tego, kto z kim grał („arena bias").
Elo, Bradley-Terry i win rate