You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MAPIE时alpha过大导致预测集为空的技术咨询

关于MAPIE中score方法生成空预测集的问题与解决

我使用Python库MAPIE进行conformal predictions,在MapieClassifier中选择method='score'。当alpha取1%-5%这类较小值时,能得到非空预测集;但当alpha范围覆盖1%-99%(如alphas = np.arange(0.01,1.00,0.01))时,预测集的平均类别数逐渐降至0。

根据C. Molnar所著《Introduction To Conformal Prediction With Python (2023)》第27页的描述:

多分类任务的预测集是包含一个或多个类别的集合,即目标模态的非空子集。

但我在两个分类数据集(包括书中提及的Dry Bean数据集)上使用默认XGBoost模型测试,均出现alpha过大时预测集为空的现象。

附上预测集平均基数随alpha变化的图表:
MAPIE 'score'方法图表
从图中可见平均基数最终低于1。

我还尝试了书中第25-28页未直接使用MAPIE但逻辑相似的代码,同样出现alpha增大后预测集为空的结果,这与我根据该书第27页内容预期的非空预测集不符。观察到alpha增大时q_level降低,进而使q_hat变小,且q_hat在q_level处于0.7-0.9区间时下降极快:
q_hat随q_level变化图表

问题

  • alpha增大时预测集为空是否属于正常现象?
  • 是否应更换method='score'为其他方法以获取非空预测集?
  • 是否遗漏了MAPIE的最佳实践?比如应避免使用大alpha或score方法?直觉上认为应始终得到非空预测集。

2024-04-05 更新

我深入查阅了Molnar的书,相关内容如下:

第50页:“要将覆盖率降至95%,MAPIE不得不人为生成空预测集,但MAPIE开发者的设计决定是不生成空集,因为空集难以解释。”
第96页:“首先预测集会变小,但如果为达到1−𝛼覆盖率,预测集必须小于1个类别?理论上算法可能需要生成空集来确保精确的1−𝛼覆盖率,但MAPIE不会这样做,因此覆盖率可能大于1−𝛼且随alpha增大不再变化,这是设计选择。”
第96页:“但随着alpha增大,越来越多不确定的预测会转为空集。”

书中提到预测集可能为空但MAPIE设计上不会生成,这与实际情况不符——MAPIE默认方法为'lac'(即'score'),在alpha过大时确实会生成空集。

定义score方法的原始论文中也提及空集:

第1页:“最优分类器有时会输出空集,但我们提供了两种适合不同实际需求的解决方案。”
第3页:“最优分类器一个潜在的不良特性是可能产生空预测,即对某些x∈X,H(x)=∅,尤其是在要求的覆盖率较低时。”

MAPIE文档也明确说明score(即lac)方法可能生成空集。目前最佳解决方案是更换其他方法,我已尝试并解决了空集问题,相关图表如下:
MAPIE 'aps'方法图表
MAPIE 'raps'方法图表
MAPIE 'top_k'方法图表

结论

score方法在alpha过大时会生成空预测集,Molnar书中关于MAPIE设计上不生成空集的表述有误。


内容的提问来源于stack exchange,提问作者Noé AC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:06:04