pub enum BradleyTerryOptimizer {
NewtonRaphson {
max_iterations: usize,
tolerance: f64,
prior_lambda: f64,
},
MM {
max_iterations: usize,
tolerance: f64,
bootstrap_samples: usize,
},
}Expand description
Bradley-Terry optimizer configuration
Variants§
NewtonRaphson
Newton-Raphson optimization with Fisher Information for uncertainty
Faster convergence, provides analytical covariance matrix from the inverse Fisher Information (negative Hessian).
Fields
prior_lambda: f64Gaussian prior precision on the log-strengths (L2 penalty coefficient λ, default: 0.1).
This is a genuine MAP prior: the penalized objective is
LL(θ) − (λ/2)·‖θ‖², so the prior contributes −λθ to the
gradient and −λ to the Hessian diagonal. It shrinks the
log-strengths toward 0 (strength 1), which keeps candidates
that win or lose all of their comparisons finite instead of
diverging to ±∞.
MM
MM (Minorization-Maximization) algorithm with bootstrap for uncertainty
Simpler, guaranteed monotonic likelihood increase, uses bootstrap resampling to estimate variance.
Implementations§
Source§impl BradleyTerryOptimizer
impl BradleyTerryOptimizer
Sourcepub fn newton_raphson(
max_iterations: usize,
tolerance: f64,
prior_lambda: f64,
) -> Self
pub fn newton_raphson( max_iterations: usize, tolerance: f64, prior_lambda: f64, ) -> Self
Create Newton-Raphson optimizer with custom parameters
prior_lambda is the precision of the Gaussian prior on the
log-strengths (see BradleyTerryOptimizer::NewtonRaphson). A value of
0.0 recovers the unregularized MLE (which can diverge for
all-win/all-loss candidates); 0.1 is a sensible default.
Trait Implementations§
Source§impl Clone for BradleyTerryOptimizer
impl Clone for BradleyTerryOptimizer
Source§fn clone(&self) -> BradleyTerryOptimizer
fn clone(&self) -> BradleyTerryOptimizer
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BradleyTerryOptimizer
impl Debug for BradleyTerryOptimizer
Source§impl Default for BradleyTerryOptimizer
impl Default for BradleyTerryOptimizer
Source§impl<'de> Deserialize<'de> for BradleyTerryOptimizer
impl<'de> Deserialize<'de> for BradleyTerryOptimizer
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for BradleyTerryOptimizer
impl RefUnwindSafe for BradleyTerryOptimizer
impl Send for BradleyTerryOptimizer
impl Sync for BradleyTerryOptimizer
impl Unpin for BradleyTerryOptimizer
impl UnsafeUnpin for BradleyTerryOptimizer
impl UnwindSafe for BradleyTerryOptimizer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.