lir.bounding module
- class lir.bounding.LLRBounder(lower_llr_bound: float | None = None, upper_llr_bound: float | None = None)[source]
Bases:
Transformer,ABCBase class for LLR bounders.
A bounder updates any LLRs that are out of bounds. Any LLR values within bounds remain unchanged. LLR values that are out-of-bounds are updated to the nearest bound.
- Parameters:
lower_llr_bound (float | None) – The lower bound for the LLRs. If None, no lower bound is applied.
upper_llr_bound (float | None) – The upper bound for the LLRs. If None, no upper bound is applied.
- apply(instances: InstanceData) LLRData[source]
Recalculate the LLR data using the first step calibrator and applying the bounds.
- Parameters:
instances (InstanceData) – The data to apply the bounder to. This should include the LLRs and their corresponding labels.
- Returns:
The LLR data with the LLRs bounded according to the calculated bounds.
- Return type:
- abstractmethod calculate_bounds(llrdata: LLRData) tuple[float | None, float | None][source]
Calculate and returns appropriate bounds for a set of LLRs and their labels.
- Parameters:
llrdata (LLRData) – The LLR data for which to calculate the bounds. This includes the LLRs, their labels, and any other relevant information.
- fit(instances: InstanceData) Self[source]
Configure this bounder by calculating bounds.
assuming that y=1 corresponds to Hp, y=0 to Hd
- Parameters:
instances (InstanceData) – The data to fit the bounder on. This should include the LLRs and their corresponding labels.
- Returns:
The fitted bounder instance.
- Return type:
Self
- class lir.bounding.NSourceBounder(lower_llr_bound: float | None = None, upper_llr_bound: float | None = None)[source]
Bases:
LLRBounderBound LLRs based on the number of sources.
This bounder sets the lower LLR bound to -log(N) and the upper bound to log(N), where N is the number of sources.
In non-log space, this corresponds to bounding likelihood ratios to [1/N, N]. This is a logical consequence of having N sources: no source can provide more than N support for one hypothesis over the other.
- calculate_bounds(llrdata: LLRData) tuple[float | None, float | None][source]
Calculate and return the lower and upper LLR bounds.
- Parameters:
llrdata (LLRData) – The LLR data for which to calculate the bounds. This should include the source IDs.
- Returns:
The lower and upper LLR bounds, calculated based on the number of sources.
- Return type:
tuple[float | None, float | None]
- class lir.bounding.StaticBounder(lower_llr_bound: float | None, upper_llr_bound: float | None)[source]
Bases:
LLRBounderBound LLRs to constant values.
This bounder takes arguments for a lower and upper bound, which may take None in which case no bounds are applied.
- Parameters:
lower_llr_bound (float | None) – The lower bound for the LLRs. If None, no lower bound is applied.
upper_llr_bound (float | None) – The upper bound for the LLRs. If None, no upper bound is applied.
- calculate_bounds(llrdata: LLRData) tuple[float | None, float | None][source]
Calculate and return the lower and upper LLR bounds.
- Parameters:
llrdata (LLRData) – Not used, but included for compatibility with the base class.
- Returns:
The lower and upper LLR bounds, as specified in the constructor.
- Return type:
tuple[float | None, float | None]