lir.algorithms.kde module
- class lir.algorithms.kde.KDECalibrator(bandwidth: Callable | str | float | tuple[float, float] | None = None)[source]
Bases:
TransformerCalculate LR from a score, belonging to one of two distributions using KDE.
Calculates a likelihood ratio of a score value, provided it is from one of two distributions. Uses kernel density estimation (KDE) for interpolation.
- Parameters:
bandwidth (Callable | str | float | tuple[float, float] | None, optional) – Bandwidth specification for KDE.
- apply(instances: InstanceData) LLRData[source]
Provide calibrated LLRs as output.
- Parameters:
instances (InstanceData) – Instances to calibrate.
- Returns:
Calibrated log-likelihood-ratio data.
- Return type:
- static bandwidth_silverman(X: ndarray, y: ndarray) tuple[float, float][source]
Estimate bandwidths using Silverman’s rule of thumb.
- Parameters:
X (np.ndarray) – Score array.
y (np.ndarray) – Label array.
- Returns:
Bandwidth for class 0 and class 1.
- Return type:
tuple[float, float]
- fit(instances: InstanceData) Self[source]
Fit the KDE model on the data.
- Parameters:
instances (InstanceData) – Training instances.
- Returns:
Fitted calibrator.
- Return type:
Self
- lir.algorithms.kde.compensate_and_remove_neginf_inf(log_odds: ndarray, y: ndarray) tuple[ndarray, ndarray, float, float][source]
Remove infinite log-odds values and compute compensation factors.
- Parameters:
log_odds (np.ndarray) – Array of log-odds.
y (np.ndarray) – Array of labels.
- Returns:
Finite log-odds, corresponding labels, numerator compensator, and denominator compensator.
- Return type:
tuple[np.ndarray, np.ndarray, float, float]
- lir.algorithms.kde.parse_bandwidth(bandwidth: Callable | str | float | tuple[float, float] | None) Callable[[Any, Any], tuple[float, float]][source]
Parse and return the corresponding bandwidth strategy based on input type.
Returns bandwidth as a tuple of two (optional) floats. Extrapolates a single bandwidth.
- Parameters:
bandwidth (Callable | str | float | tuple[float, float] | None) – Bandwidth specification.
- Returns:
Callable that computes bandwidths for class 0 and class 1.
- Return type:
Callable[[Any, Any], tuple[float, float]]