Expand description
Bradley-Terry model implementation with Maximum Likelihood Estimation
This module provides proper MLE-based Bradley-Terry model fitting with two optimization algorithms:
- Newton-Raphson: Fast convergence, provides Fisher Information for uncertainty
- MM (Minorization-Maximization): Simple, guaranteed convergence, uses bootstrap for uncertainty
§Bradley-Terry Model
The Bradley-Terry model estimates the probability that candidate i beats candidate j as:
P(i beats j) = π_i / (π_i + π_j)where π_i is the “strength” parameter for candidate i.
§Example
ⓘ
use fugue_evo::interactive::bradley_terry::{BradleyTerryModel, BradleyTerryOptimizer};
let comparisons = vec![
ComparisonRecord { winner: CandidateId(0), loser: CandidateId(1), generation: 0 },
ComparisonRecord { winner: CandidateId(0), loser: CandidateId(2), generation: 0 },
];
let model = BradleyTerryModel::new(BradleyTerryOptimizer::default());
let result = model.fit(&comparisons, &candidate_ids);
let estimate = result.get_estimate(CandidateId(0));
println!("Strength: {:.2} ± {:.2}", estimate.mean, estimate.std_error());Structs§
- Bradley
Terry Model - Bradley-Terry model for pairwise comparison data
- Bradley
Terry Result - Result of Bradley-Terry MLE optimization
Enums§
- Bradley
Terry Optimizer - Bradley-Terry optimizer configuration