Primitives
qr_quantile
¶
qr_quantile(lipschitz: float, quantile: float, values: NDArray, voting_rights: Union[NDArray, float] = 1.0, left_uncertainties: Optional[NDArray] = None, right_uncertainties: Optional[NDArray] = None, default_value: float = 0.0, error: float = 1e-05) -> float
Computes the quadratically regularized quantile, an estimate of the quantile of values,weighted by voting_rights, given left and right uncertainties, and with lipschitz resilience.
See Article
"Solidago: A Modular Pipeline for Collaborative Scoring" on arXiv.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
lipschitz
|
float
|
Resilience parameters. Larger values are more resilient, but less accurate. |
required |
quantile
|
float
|
Between 0 and 1. |
required |
values
|
NDArray
|
Values whose quantile is estimated |
required |
voting_rights
|
Union[NDArray, float]
|
Larger voting rights can pull the output towards them with more strength |
1.0
|
left_uncertainties
|
Optional[NDArray]
|
Left uncertainty on each value. Set to zero if None. |
None
|
right_uncertainties
|
Optional[NDArray]
|
Right uncertainty. Set to left_uncertainties if None (symmetric uncertainty). |
None
|
default_value
|
float
|
Default value in the absence of data |
0.0
|
error
|
float
|
Approximation error |
1e-05
|
Returns:
Name | Type | Description |
---|---|---|
out |
float
|
Lipschitz-resilient estimator of the quantile |
qr_median
¶
qr_median(lipschitz: float, values: NDArray, voting_rights: Union[NDArray, float] = 1.0, left_uncertainties: Optional[NDArray] = None, right_uncertainties: Optional[NDArray] = None, default_value: float = 0.0, error: float = 1e-05)
The quadratically regularized median is a Lipschitz-resilient median estimator. It is equal to the qr_quantile, for quantile = 0.5.
See Article
"Robust Sparse Voting". Youssef Allouah, Rachid Guerraoui, Lê Nguyên Hoang and Oscar Villemaud (2024). AISTATS.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
lipschitz
|
float
|
Resilience parameters. Larger values are more resilient, but less accurate. |
required |
values
|
NDArray
|
Values whose quantile is estimated |
required |
voting_rights
|
Union[NDArray, float]
|
Larger voting rights can pull the output towards them with more strength |
1.0
|
left_uncertainties
|
Optional[NDArray]
|
Left uncertainty on each value. Set to zero if None. |
None
|
right_uncertainties
|
Optional[NDArray]
|
Right uncertainty. Set to left_uncertainties if None (symmetric uncertainty). |
None
|
default_value
|
float
|
Default value in the absence of data |
0.0
|
error
|
float
|
Approximation error |
1e-05
|
Returns:
Name | Type | Description |
---|---|---|
out |
float
|
Lipschitz-resilient estimator of the median |
qr_standard_deviation
¶
qr_standard_deviation(lipschitz: float, values: NDArray, quantile_dev: float = 0.5, voting_rights: Union[NDArray, float] = 1.0, left_uncertainties: Optional[NDArray] = None, right_uncertainties: Optional[NDArray] = None, default_dev: float = 1.0, error: float = 1e-05, median: Optional[float] = None)
Lipschitz-resilient estimator of the standard deviation. Can be understood as a measure of polarization. It roughly measures a median deviation from the median.
For heavy-tail distributions of values, we however recommend selecting a higher quantile of deviations from the median.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
lipschitz
|
float
|
Resilience parameters. Larger values are more resilient, but less accurate. |
required |
values
|
NDArray
|
Values whose quantile is estimated |
required |
quantile_dev
|
float
|
Must be between 0 and 1. Defines the quantile of deviations from qr_med that is reported. |
0.5
|
voting_rights
|
Union[NDArray, float]
|
Larger voting rights can pull the output towards them with more strength |
1.0
|
left_uncertainties
|
Optional[NDArray]
|
Left uncertainty on each value. Set to zero if None. |
None
|
right_uncertainties
|
Optional[NDArray]
|
Right uncertainty. Set to left_uncertainties if None (symmetric uncertainty). |
None
|
default_dev
|
float
|
Default value in the absence of data |
1.0
|
error
|
float
|
Approximation error |
1e-05
|
Returns:
Name | Type | Description |
---|---|---|
out |
float
|
Lipschitz-resilient estimator of the quantile |
qr_uncertainty
¶
qr_uncertainty(lipschitz: float, values: NDArray, voting_rights: Union[NDArray, float] = 1.0, left_uncertainties: Optional[NDArray] = None, right_uncertainties: Optional[NDArray] = None, default_dev: float = 1.0, error: float = 1e-05, median: Optional[float] = None)
Quadratically regularized uncertainty
TODO
Search for a better formula for qr_uncertainty
if possible.
clip_mean
¶
lipschitz_resilient_mean
¶
lipschitz_resilient_mean(lipschitz: float, values: NDArray, voting_rights: Union[NDArray[float64], float] = 1.0, left_uncertainties: Optional[NDArray] = None, right_uncertainties: Optional[NDArray] = None, default_value: float = 0.0, error: float = 1e-05)
Lipschitz-robustified mean. Lipschitz-resilient mean estimator. It provably returns the mean, given sufficient participation and bounded values
See Article
"Robust Sparse Voting". Youssef Allouah, Rachid Guerraoui, Lê Nguyên Hoang and Oscar Villemaud (2024). AISTATS.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
lipschitz
|
float
|
Resilience parameters. Larger values are more resilient, but less accurate. |
required |
values
|
NDArray
|
Values whose quantile is estimated |
required |
voting_rights
|
Union[NDArray[float64], float]
|
Larger voting rights can pull the output towards them with more strength |
1.0
|
left_uncertainties
|
Optional[NDArray]
|
Left uncertainty on each value. Set to zero if None. |
None
|
right_uncertainties
|
Optional[NDArray]
|
Right uncertainty. Set to left_uncertainties if None (symmetric uncertainty). |
None
|
default_value
|
float
|
Default value in the absence of data |
0.0
|
error
|
float
|
Approximation error |
1e-05
|
Returns:
Name | Type | Description |
---|---|---|
out |
float
|
Lipschitz-resilient estimator of the mean |