保形预测

保形预测方法是一种校准方法,从不确定性估计开始,提供保形集,即具有用户选择概率水平的严格预测集。我们支持用于分类回归的保形方法。

class fortuna.conformal.classification.adaptive_prediction.AdaptivePredictionConformalClassifier[来源]
conformal_set(val_probs, val_targets, test_probs, error)
Return type:

List[List[int]]

get_scores(val_probs, val_targets, test_probs)
Return type:

Tuple[Union[Array, ndarray], Union[Array, ndarray]]

is_in(values, conformal_sets)

检查值是否位于其各自的保形集内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于各自的符合集合中。

  • conformal_sets (数组) – 每个输入数据点的共形集。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合集内。

Return type:

数组

score_fn(probs, targets)[来源]
class fortuna.conformal.classification.adaptive_prediction.CVPlusAdaptivePredictionConformalClassifier[来源]
conformal_set(cross_val_probs, cross_val_targets, cross_test_probs, error)
Return type:

List[List[int]]

get_scores(cross_val_probs, cross_val_targets, cross_test_probs)
Return type:

Tuple[Union[Array, ndarray], Union[Array, ndarray]]

is_in(values, conformal_sets)

检查值是否位于各自的符合集内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于各自的符合集合中。

  • conformal_sets (数组) – 每个输入数据点的共形集。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合集内。

Return type:

数组

score_fn(probs, targets)[来源]
fortuna.conformal.classification.adaptive_prediction.score_fn(probs, targets)[来源]
class fortuna.conformal.classification.simple_prediction.CVPlusSimplePredictionConformalClassifier[来源]
conformal_set(cross_val_probs, cross_val_targets, cross_test_probs, error)
Return type:

List[List[int]]

get_scores(cross_val_probs, cross_val_targets, cross_test_probs)
Return type:

Tuple[Union[Array, ndarray], Union[Array, ndarray]]

is_in(values, conformal_sets)

检查值是否位于其各自的保形集内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于各自的符合集合中。

  • conformal_sets (数组) – 每个输入数据点的共形集。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合集内。

Return type:

数组

score_fn(probs, targets)[来源]
class fortuna.conformal.classification.simple_prediction.SimplePredictionConformalClassifier[来源]
conformal_set(val_probs, val_targets, test_probs, error)
Return type:

List[List[int]]

get_scores(val_probs, val_targets, test_probs)
Return type:

Tuple[Union[Array, ndarray], Union[Array, ndarray]]

is_in(values, conformal_sets)

检查值是否位于其各自的保形集内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于各自的符合集合中。

  • conformal_sets (数组) – 每个输入数据点的共形集。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合集内。

Return type:

数组

score_fn(probs, targets)[来源]
fortuna.conformal.classification.simple_prediction.score_fn(probs, targets)[来源]
class fortuna.conformal.classification.adaptive_conformal_classifier.AdaptiveConformalClassifier(conformal_classifier)[来源]

一个自适应保形分类器类 (参见 Gibbs & Candes, 2021)。 它接受任何保形分类器,并添加了更新覆盖误差的功能,以考虑数据中的分布变化。

Parameters:

conformal_classifier (ConformalClassifier) – 一种用于分类的保形方法。

abstract get_scores(*args, **kwargs)
Return type:

Tuple[Union[Array, ndarray], Union[Array, ndarray]]

is_in(values, conformal_sets)

检查值是否位于各自的符合集内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于各自的符合集合中。

  • conformal_sets (数组) – 每个输入数据点的共形集。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合集内。

Return type:

数组

abstract score_fn(probs, targets)
update_error(conformal_set, error, target, target_error, gamma=0.005, weights=None, were_in=None, return_were_in=False)[来源]

根据测试目标变量是否属于符合集来更新覆盖误差。

Parameters:
  • conformal_set (List[int]) – 当前测试目标变量的一个保形集。

  • error (float) – 当前需要更新的覆盖误差。

  • target (Array) – 观测到的测试目标变量。

  • target_error (float) – 目标覆盖误差。

  • gamma (float) – 覆盖误差更新的步长。

  • weights (Optional[Array]) – 考虑的过去时间步长和当前时间步长的权重。 这必须是一个一维数组,其元素在0到1之间递增,且总和为1。

  • were_in (可选[数组]) – 它表示所考虑的过去时间步长的目标变量是否落在各自的符合集合内。这必须是一个由1和0组成的一维数组。其长度必须是weights的长度减一,因为它指的是所有过去的时间步长,但不包括当前的时间步长。

  • return_were_in (bool) – 它返回一个更新的 were_in,其中包括当前测试目标变量是否落在其保形集合内。

Returns:

更新后的覆盖误差。

Return type:

数组

class fortuna.conformal.regression.quantile.QuantileConformalRegressor[来源]
conformal_interval(val_lower_bounds, val_upper_bounds, test_lower_bounds, test_upper_bounds, val_targets, error, quantile=None)[来源]

每个测试输入的覆盖区间,在所需的覆盖误差下。这仅支持标量目标变量。

Parameters:
  • val_lower_bounds (数组) – 在验证集上计算的区间下界。

  • val_upper_bounds (Array) – 在验证集上计算的区间上限。

  • test_lower_bounds (Array) – 在测试集上计算的区间下界。

  • test_upper_bounds (Array) – 在测试集上计算的区间上界。

  • val_targets (Array) – 一个二维的验证目标变量数组。

  • error (float) – 覆盖误差。这必须是一个介于0和1之间的标量,包括极值。这应该对应于计算val_lower_boundsval_upper_boundstest_lower_boundstest_upper_bounds时的覆盖误差。

  • quantile (可选[float]) – 保形分位数。这应该是quantile()的输出。

Returns:

共形区间。第二轴的两个分量对应于区间的左右边界。

Return type:

jnp.ndarray

is_in(values, conformal_intervals)

检查值是否位于其各自的符合区间内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于相应的置信区间内。

  • conformal_intervals (Array) – 每个输入数据点的保形区间。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合区间内。

Return type:

数组

quantile(val_lower_bounds, val_upper_bounds, val_targets, error, scores=None)[来源]

计算分数的分位数。

Parameters:
  • val_lower_bounds (数组) – 在验证集上计算的区间下界。

  • val_upper_bounds (Array) – 在验证集上计算的区间上限。

  • val_targets (Array) – 一个二维的验证目标变量数组。

  • error (float) – 覆盖误差。这必须是一个介于0和1之间的标量,包括极值。这应该对应于计算val_lower_boundsval_upper_boundstest_lower_boundstest_upper_bounds时的覆盖误差。

  • scores (可选[float]) – 保形分数。这应该是 score()的输出。

Returns:

共形分位数。

Return type:

浮点数

score(val_lower_bounds, val_upper_bounds, val_targets)[来源]

计算得分函数。

Parameters:
  • val_lower_bounds (数组) – 在验证集上计算的区间下界。

  • val_upper_bounds (Array) – 在验证集上计算的区间上限。

  • val_targets (Array) – 一个二维的验证目标变量数组。

Returns:

保形分数。

Return type:

jnp.ndarray

class fortuna.conformal.regression.onedim_uncertainty.OneDimensionalUncertaintyConformalRegressor[来源]
conformal_interval(val_preds, val_uncertainties, test_preds, test_uncertainties, val_targets, error, quantile=None)[来源]

每个测试输入的覆盖区间,在期望的覆盖误差下。这仅支持一维目标变量。

Parameters:
  • val_preds (Array) – 验证数据点上的预测结果的二维数组。

  • test_preds (数组) – 测试数据点的预测结果的二维数组。

  • val_uncertainties (Array) – 一个二维数组,包含不确定性估计(例如标准差)。第一个维度是验证输入的数量。第二个维度必须只有一个组件。

  • test_uncertainties (Array) – 一个二维数组,包含不确定性估计(例如标准差)。第一个维度是测试输入的数量。第二个维度必须只有一个组件。

  • val_targets (Array) – 一个二维的验证目标变量数组。

  • error (float) – 覆盖误差。这必须是一个介于0和1之间的标量,包括极值。

  • quantile (可选[float]) – 保形分位数。这应该是quantile()的输出。

Returns:

共形区间。第二轴的两个分量对应于区间的左右边界。

Return type:

jnp.ndarray

is_in(values, conformal_intervals)

检查值是否位于其各自的符合区间内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于相应的置信区间内。

  • conformal_intervals (Array) – 每个输入数据点的保形区间。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合区间内。

Return type:

数组

quantile(val_preds, val_uncertainties, val_targets, error, scores=None)[来源]

计算分数的分位数。

Parameters:
  • val_preds (Array) – 验证数据点上的预测结果的二维数组。

  • val_uncertainties (Array) – 一个二维数组,包含不确定性估计(例如标准差)。第一个维度是验证输入的数量。第二个维度必须只有一个组件。

  • val_targets (Array) – 一个二维的验证目标变量数组。

  • error (float) – 覆盖误差。这必须是一个介于0和1之间的标量,包括极值。

  • scores (可选[float]) – 保形分数。这应该是 score()的输出。

Returns:

共形分位数。

Return type:

浮点数

score(val_preds, val_uncertainties, val_targets)[来源]

计算保形分数。

Parameters:
  • val_preds (Array) – 验证数据点上的预测结果的二维数组。

  • val_uncertainties (Array) – 一个二维数组,包含不确定性估计(例如标准差)。第一个维度是验证输入的数量。第二个维度必须只有一个组件。

  • val_targets (Array) – 一个二维的验证目标变量数组。

Returns:

分数。

Return type:

jnp.ndarray

class fortuna.conformal.regression.cvplus.CVPlusConformalRegressor[来源]

该类实现了Barber等人,2021年提出的CV+方法。这是对同一工作中提出的jackknife+方法的扩展,它考虑了K折策略而不是留一法。如果K=n,其中n是训练数据的总数,那么CV+就简化为jackknife+。

conformal_interval(cross_val_outputs, cross_val_targets, cross_test_outputs, error)[来源]

每个测试输入的覆盖区间,在期望的覆盖误差下。这仅支持一维目标变量。

Parameters:
  • cross_val_outputs (List[Array]) – 交叉验证期间使用的模型在各自验证输入处的输出。更准确地说,我们假设训练数据已被联合划分为K个子集。列表中的第i个元素:code: cross_val_outputs是在除第i个分区外的所有数据上训练的模型,并在第i个分区本身的输入处进行了评估,对于i=1, 2, ..., K

  • cross_val_targets (List[Array]) – 目标变量按照与cross_val_outputs相同的分区组织。更准确地说,cross_val_targets的第i个元素包含训练数据第i个分区的目标变量数组,对于i=1, 2, ..., K

  • cross_test_outputs (List[Array]) – 在交叉验证期间使用的模型在测试输入上的输出。更准确地说,考虑与cross_val_outputs相同的数据分区。然后,cross_test_outputs的第i个元素表示在除第i个分区之外的所有训练数据上训练的模型,并在测试输入上评估的输出,对于i=1, 2, ..., K

  • error (float) – 期望的覆盖误差。这必须是一个介于0和1之间的标量,包括端点。

Returns:

共形区间。第二轴的两个分量对应于区间的左右边界。

Return type:

jnp.ndarray

is_in(values, conformal_intervals)

检查值是否位于其各自的符合区间内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于相应的置信区间内。

  • conformal_intervals (Array) – 每个输入数据点的保形区间。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合区间内。

Return type:

数组

class fortuna.conformal.regression.jackknifeplus.JackknifePlusConformalRegressor[来源]

该类实现了Barber等人,2021年引入的jackknife+方法。给定期望的覆盖率为\(1-α\),jackknife+保证最小覆盖率为\(1 - 2α\)

conformal_interval(loo_val_outputs, loo_val_targets, loo_test_outputs, error)[来源]

每个测试输入的覆盖区间,在期望的覆盖误差下。这仅支持一维目标变量。

Parameters:
  • loo_val_outputs (数组) – 在留一法评估期间使用的模型在其各自留出的验证输入上的输出。 更准确地说,:code: loo_val_outputs 的第 i 个元素是一个模型,该模型已经在所有训练数据上进行了训练,但排除了第 i 个数据点,并在第 i 个输入上进行了评估,适用于所有训练数据点。

  • loo_val_targets (Array) – 在loo_val_outputs中描述的留一法过程中,被留出的数据点的目标变量数组。

  • loo_test_outputs (数组) – 在留一法评估期间使用的模型在测试输入处的输出。更准确地说,考虑与用于loo_val_outputs相同的留一法过程。然后,loo_test_outputs的第一维度的第i个元素表示在除第i个数据点外的所有训练数据上训练的模型在测试输入处的输出。loo_test_outputs的第二维度是对不同测试输入的。

  • error (float) – 期望的覆盖误差。这必须是一个介于0和1之间的标量,包括端点。

Returns:

共形区间。第二轴的两个分量对应于区间的左右边界。

Return type:

jnp.ndarray

is_in(values, conformal_intervals)

检查值是否位于其各自的符合区间内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于相应的置信区间内。

  • conformal_intervals (Array) – 每个输入数据点的保形区间。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合区间内。

Return type:

数组

class fortuna.conformal.regression.jackknife_minmax.JackknifeMinmaxConformalRegressor[来源]

该类实现了Barber等人,2021年中引入的jackknife-minmax方法。Jackknife-minmax保证了所需的最小覆盖率\(1-α\),而jackknife+仅保证最小覆盖率为\(1 - 2α\)

conformal_interval(loo_val_outputs, loo_val_targets, loo_test_outputs, error)[来源]

每个测试输入的覆盖区间,在期望的覆盖误差下。这仅支持一维目标变量。

Parameters:
  • loo_val_outputs (Array) – 在留一法评估期间使用的模型在其各自留出的验证输入上的输出。 更准确地说,:code: loo_val_outputs 的第 i 个元素是一个模型,该模型已经在所有训练数据上进行了训练,但排除了第 i 个数据点,并在第 i 个输入上进行了评估,适用于所有训练数据点。

  • loo_val_targets (Array) – 在loo_val_outputs中描述的留一法过程中,被留出的数据点的目标变量数组。

  • loo_test_outputs (数组) – 在留一法评估期间使用的模型在测试输入处的输出。更准确地说,考虑与用于loo_val_outputs相同的留一法过程。然后,loo_test_outputs的第一维度的第i个元素表示在除第i个数据点外的所有训练数据上训练的模型在测试输入处的输出。loo_test_outputs的第二维度是对不同测试输入的遍历。

  • error (float) – 期望的覆盖误差。这必须是一个介于0和1之间的标量,包括端点。

Returns:

共形区间。第二轴的两个分量对应于区间的左右边界。

Return type:

jnp.ndarray

is_in(values, conformal_intervals)

检查值是否位于其各自的符合区间内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于相应的置信区间内。

  • conformal_intervals (Array) – 每个输入数据点的保形区间。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合区间内。

Return type:

数组

class fortuna.conformal.regression.enbpi.EnbPI(aggregation_fun=lambda x: ...)[来源]

集成批量预测区间(EnbPI)是一种用于时间序列回归的保形预测算法。通过对数据进行自举并在每个自举样本上训练模型,EnbPI能够计算满足每个测试数据点近似边际保证的保形区间。此外,EnbPI可以结合来自新数据批次的在线反馈,并在无需重新训练模型的情况下改进保形区间。

Parameters:

aggregation_fun (Callable[[Array], Array]) – 聚合函数,该函数接收来自不同引导样本的一组模型预测,并将它们减少为一个单一的预测。

conformal_interval(bootstrap_indices, bootstrap_train_preds, bootstrap_test_preds, train_targets, error, return_residuals=False)[来源]

计算时间序列每个测试输入的覆盖区间,以达到所需的覆盖误差。 这仅支持一维目标变量,并且一次只能处理一个时间序列。

Parameters:
  • bootstrap_indices (数组) – 用于训练模型的时间序列中训练数据的索引,这些索引是通过有放回随机抽样得到的。第一维度是不同样本的索引。第二维度包含每个样本的数据点,这些数据点的数量必须与用于训练的时间序列中的数据点数量相同。一种简单的获取有放回随机抽样索引的方法是 numpy.random.choice(T, size=(B, T)), 其中 T 是时间序列中的训练点数, 而 B 是bootstrap样本的数量。 用户需要确保模型是根据随机索引对应的数据进行训练的。

  • bootstrap_train_preds (Array) – 用于训练模型的时间序列数据的每个引导样本的模型预测,在时间序列的每个训练数据输入处进行评估。第一个维度是不同引导样本的维度。第二个维度是训练输入的维度。可能存在第三个维度,对应于预测的维度,但如果存在,则必须为一。

  • bootstrap_test_preds (Array) – 用于训练模型的时间序列数据的每个引导样本的模型预测,在时间序列的每个测试数据输入处进行评估。第一个维度对应于不同的引导样本。第二个维度对应于测试输入。可能还有第三个维度,对应于预测的维度,但如果存在,则必须为一。

  • train_targets (Array) – 时间序列中训练数据点的目标变量。

  • error (float) – 期望的覆盖误差。这必须是一个介于0和1之间的标量,包括端点。

  • return_residuals (bool) – 如果为True,返回在训练数据上计算的残差误差。这些残差用于 conformal_interval_from_residuals()

Returns:

共形区间。第二维度的两个分量分别对应左右区间边界。如果return_residuals设置为True,则还会返回在训练集上计算的残差。

Return type:

联合[数组, 元组[数组, 数组]]

conformal_interval_from_residuals(train_residuals, bootstrap_new_train_preds, bootstrap_new_test_preds, new_train_targets, error)[来源]

计算时间序列每个测试输入的覆盖区间,以达到所需的覆盖误差。 此方法仅支持一维目标变量,并且一次只能处理一个时间序列。 此方法假设训练集上的残差已经通过 conformal_interval() 使用标志 return_residuals=True 计算。 如果是这样,此方法将接收新传入的训练和测试数据点上每个引导样本的预测,并计算保形区间,而无需重新训练模型。与使用 conformal_interval() 一次性预测所有测试数据点的保形区间相比, 此方法利用传入的数据点作为在线反馈的一种形式, 并相应地改进保形区间。

Parameters:
  • train_residuals (Array) – 通过conformal_interval()使用标志return_residuals=True计算的训练数据点的残差。

  • bootstrap_new_train_preds (Array) – 用于训练模型的时间序列数据的每个引导样本的模型预测,评估于时间序列的新传入训练数据输入。第一维度是不同引导样本的维度。第二维度是新训练输入的维度。可能还有第三维度,对应于预测的维度,但如果有的话,必须为一。例如,假设引导是在1到T的数据点上进行的,并且模型在每个引导样本上进行了训练。然后在一批从T+1到T+T1的数据点上进行了预测。在观察到从T+1到T+T1的数据后,这将用作新的训练数据批次。

  • bootstrap_new_test_preds (Array) – 用于训练模型的时间序列数据的每个引导样本的模型预测,评估于时间序列的新传入测试数据输入。第一维度是不同引导样本的维度。第二维度是新测试输入的维度。可能存在第三维度,对应于预测的维度,但如果存在,则必须为一。例如,假设引导是在1到T的数据点上进行的,并且模型在每个引导样本上进行了训练。然后在一批从T+1到T+T1的数据点上进行了预测。在观察到从T+1到T+T1的数据后,从T+T1+1到T+2*T1的数据可能被视为新的测试数据批次。

  • new_train_targets (Array) – 时间序列中新一批训练数据点的目标变量。

  • error (float) – 期望的覆盖误差。这必须是一个介于0和1之间的标量,包括端点。

Returns:

  • 保形区间。第二维度的两个分量分别对应左和右

区间边界。 - 一组新的残差,包括在新一批训练数据点上计算的残差。 通过消除最旧的残差,保持存储的训练残差数量不变。

Return type:

联合[数组, 元组[数组, 数组]]

is_in(values, conformal_intervals)

检查值是否位于其各自的符合区间内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于相应的置信区间内。

  • conformal_intervals (Array) – 每个输入数据点的保形区间。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合区间内。

Return type:

数组

class fortuna.conformal.regression.adaptive_conformal_regressor.AdaptiveConformalRegressor(conformal_regressor)[来源]

一个自适应保形回归器类 (参见 Gibbs & Candes, 2021)。 它接受任何保形回归器,并添加了更新覆盖误差的功能,以考虑数据中的分布变化。

Parameters:

conformal_regressor (ConformalRegressor) – 一种用于回归的保形方法。

update_error(conformal_interval, error, target, target_error, gamma=0.005, weights=None, were_in=None, return_were_in=False)[来源]

根据测试目标变量是否属于置信区间来更新覆盖误差。

Parameters:
  • conformal_interval (List[int]) – 当前测试目标变量的一个保形区间。

  • error (float) – 当前需要更新的覆盖误差。

  • target (Array) – 观测到的测试目标变量。

  • target_error (float) – 目标覆盖误差。

  • gamma (float) – 覆盖误差更新的步长。

  • weights (Optional[Array]) – 考虑的过去时间步长和当前时间步长的权重。 这必须是一个一维数组,其元素在0到1之间递增,且总和为1。

  • were_in (可选[数组]) – 它表示所考虑的过去时间步长的目标变量是否落在各自的置信区间内。这必须是一个由1和0组成的一维数组。其长度必须是weights的长度减一,因为它指的是所有过去的时间步长,但不包括当前的时间步长。

  • return_were_in (bool) – 它返回一个更新的 were_in,其中包括当前测试目标变量是否落在其保形区间内。

Returns:

更新后的覆盖误差。

Return type:

数组

class fortuna.conformal.regression.batch_mvp.BatchMVPConformalRegressor(seed=0)[来源]

该类实现了BatchMVP的分类版本 [Jung et al., 2022], 这是一种多值保形预测方法,满足基于组成员资格和非一致性阈值的覆盖保证。

Parameters:

seed (int) – 随机种子。

apply_patches(groups=None, thresholds=None)

将补丁应用于模型评估。

Parameters:
  • groups (Array) – 一组在某些输入上评估的组 \(g(x)\) 的列表。 这应该是一个布尔元素的二维数组。 第一个维度是数据点,第二个维度是组的数量。

  • values (可选[数组]) – 初始模型评估 \(f(x)\) 在某些输入上的评估结果。如果未提供,则设置为0。

Returns:

校准后的值。

Return type:

数组

property bucket_types: Tuple[str]
calibrate(scores, groups=None, thresholds=None, test_groups=None, test_thresholds=None, atol=1e-4, rtol=1e-6, min_prob_b='auto', n_buckets=100, n_rounds=1000, eta=0.1, split=0.8, bucket_types=('>=', '<='), patch_type='additive', coverage=0.95)

通过找到一系列模型补丁来校准模型,使校准误差低于某个阈值。

Parameters:
  • scores (Array) – 在校准数据上计算的分数列表 \(s(x, y)\)。 这应该是一个介于0和1之间的一维数组。

  • groups (Array) – 在校准数据上计算出的组列表 \(g(x)\)。 这应该是一个布尔元素的二维数组。 第一个维度是数据点,第二个维度是组的数量。

  • thresholds (可选[数组]) – 初始模型在校准数据上的评估值 \(f(x)\)。如果未提供,则设置为0。

  • test_groups (可选[数组]) – 在测试数据上计算的一组组 \(g(x)\)。 这应该是一个二维的布尔元素数组。 第一个维度是数据点,第二个维度是组的数量。

  • test_thresholds (可选[数组]) – 初始模型在测试数据上的评估值 \(f(x)\)。如果未提供,则设置为0。

  • atol (float) – 均方误差的绝对容差。

  • rtol (float) – 均方误差的相对容差。

  • min_prob_b (float) – 应用补丁的条件集 \(B_t\) 的最小概率。

  • n_buckets (int) – 算法中使用的桶的数量。桶的数量越少,模型越简单,其泛化能力越好。如果未提供,我们从2个桶开始,逐步加倍桶的数量,直到找到校准误差低于给定容差的桶数。这样的桶数保证存在。

  • n_rounds (int) – 运行此方法的最大轮数。

  • eta (float) – 步长。默认情况下,此值设置为1。

  • split (float) – 根据给定的比例将校准数据分为校准和验证两部分。验证数据将用于早期停止。

  • bucket_types (Tuple[str, ...]) –

    桶的类型。目前支持以下类型:

    • ”=”, 对应桶如 \(\{f(x) = v\}\);

    • ”>=”, 对应桶如 \(\{f(x) \ge v\}\);

    • ”<=”, 对应桶如 \(\{f(x) \le v\}\).

  • coverage (float) – 所需的覆盖水平。这必须是一个介于0和1之间的标量。

Returns:

一个状态,包括达到收敛所需的轮数和在训练过程中计算的校准误差。如果提供了test_thresholdstest_groups,补丁列表将应用于test_thresholds,并且校准后的测试阈值将与状态一起返回。

Return type:

联合[字典, 元组[数组, 字典]]

calibration_error(scores, groups=None, thresholds=None, n_buckets=10, **kwargs)

重新加权的平均平方校准误差 \(\mu(g) K_2(f, g, \mathcal{D})\)

Parameters:
  • scores (数组) – 每个数据点的分数。

  • groups (Array) – 一组在某些输入上评估的组 \(g(x)\) 的列表。 这应该是一个布尔元素的二维数组。 第一个维度是数据点,第二个维度是组的数量。

  • values (Array) – 模型评估值,校准前或校准后。

  • n_buckets (int) – 算法中使用的桶的数量。

Returns:

每个组的计算校准误差

Return type:

数组

property eta
abstract get_scores(*args, **kwargs)
Return type:

Tuple[Union[Array, ndarray], Union[Array, ndarray]]

is_in(values, conformal_sets)

检查值是否位于各自的符合集内。

Parameters:
  • values (数组) – 要检查的值,以确定它们是否位于各自的符合集合中。

  • conformal_sets (数组) – 每个输入数据点的共形集。

Returns:

一个由1或0组成的数组,表示值是否位于其各自的符合集内。

Return type:

数组

property n_buckets
property patch_type
property patches
pinball_loss(values, scores, coverage)

模型评估与分数之间的弹球损失。

Parameters:
  • values (数组) – 模型评估值。

  • scores (Array) – 分数。

  • coverage (float) – 目标覆盖率。

Returns:

弹球损失评估。

Return type:

数组

abstract score_fn(probs, targets)