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

机器学习回归任务:寻求通用且模型无关的预测区间构建策略

机器学习回归任务中通用预测区间方法的实用解答

嘿,针对你的两个问题,我来给你梳理一下实际项目里常用的解决方案,尤其是适配你这种小样本嵌套CV场景的策略:

1. 有没有通用且独立于模型的预测区间计算方法?

肯定有呀!这类方法完全不绑定特定模型的假设(比如线性回归里的正态残差要求),靠重采样或者非参数逻辑就能搞定,几乎所有监督回归模型——包括集成模型(随机森林、XGBoost这类都算)——都能用。给你列几个最靠谱的:

  • Bootstrap 预测区间:
    这是通用方案里的主力军。思路很简单:多次从训练集里有放回抽样本,每次抽完都训练模型并对目标样本做预测,最后把这些预测值的分位数(比如2.5%和97.5%)当成区间的上下界。这里推荐用成对Bootstrap(保留输入和输出的对应关系),比残差Bootstrap更通用,不用假设残差独立。

  • 分位数回归思路:
    你可以把它当成一种通用策略,而非特定模型——训练两个模型,一个专门预测目标变量的α/2分位数,另一个预测(1-α/2)分位数,这俩结果就构成了置信水平1-α的预测区间。不管你用的是树模型、神经网络还是集成模型,都能这么玩,只需要把损失函数换成分位数损失就行。

  • 保形预测(Conformal Prediction):
    这几年特别火的非参数方法,核心是用校准集估计预测的“误差范围”,能严格保证在设定的置信水平下,真实值落在区间里的概率不低于这个水平。最棒的是它完全不挑模型,啥类型的监督模型都能适配,对小样本也友好,非常符合你要“通用”的需求。

2. 针对你嵌套LOOCV场景的具体实施策略

你现在是70个样本,嵌套LOOCV(内外层都是留一法),要给外层每个预测做区间,还要适配所有监督技术。这里给你量身定制的步骤,都是考虑到小样本的局限性的:

外层LOOCV循环(每个样本当测试样本)

每次把某个样本$x_{test}$拎出来当测试集,剩下69个当外层训练集:

  1. 先按你原来的流程,用内层LOOCV完成模型调优,得到最优模型。
  2. 然后用下面的方法给$x_{test}$生成预测区间:

方案1:Bootstrap+内层LOOCV残差校准

因为样本量小,直接Bootstrap可能方差偏大,结合内层LOOCV的残差来校准更高效:

  • 用调优后的模型在外层训练集的69个样本上,拿到内层LOOCV每个样本的预测值$\hat{y}_i$,计算残差$r_i = y_i - \hat{y}_i$。
  • 对这些残差做1000次有放回重采样,每次重采样后给$\hat{y}_{test}$加上这组残差,得到1000个预测值。
  • 取这些预测值的2.5%和97.5%分位数,就是95%置信水平的预测区间。

方案2:保形预测适配嵌套LOOCV

保形预测对小样本特别友好,还不用额外拆分数据:

  • 直接用内层LOOCV里每个折叠的预测残差作为非一致性得分(比如$s_i = |y_i - \hat{y}_i|$)。
  • 对$x_{test}$做预测得到$\hat{y}{test}$,然后找到这些得分的$(1-\alpha) \times 100%$分位数$q$,那么预测区间就是$[\hat{y}{test} - q, \hat{y}_{test} + q]$。
  • 这种方法不用再拆分外层训练集,最大化利用了有限的70个样本数据。

方案3:分位数回归模型

  • 用外层训练集训练两个调优后的模型:一个以2.5%分位数为目标,另一个以97.5%分位数为目标(调优过程和你原来的内层LOOCV一致,只是把损失换成分位数损失)。
  • 对$x_{test}$分别用这两个模型预测,得到的结果就是95%的预测区间。这种方法不用做重采样,直接通过建模得到区间,效率很高。

额外小贴士

  • 如果你用的是集成模型(比如随机森林),还可以试试用袋外(OOB)样本的预测值生成区间:每个测试样本的OOB预测值集合的分位数就是区间,这是集成模型自带的通用方法,能和上面的方法结合着用,结果更稳定。
  • 小样本场景下,尽量不要做太多的数据拆分,保形预测用内层LOOCV残差校准的方式,能最大化利用数据,避免模型过拟合。

内容的提问来源于stack exchange,提问作者Massimiliano Grassi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:08:07