首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >通过学习分位数函数改进预测

通过学习分位数函数改进预测

原创
作者头像
用户11764306
发布2026-03-25 15:18:18
发布2026-03-25 15:18:18
90
举报

学习完整的分位数函数(即将概率映射到变量值的函数),而不是为每个分位数水平构建单独的模型,能够更好地优化资源权衡。

会议

AISTATS 2022

相关出版物

  • 无分位数交叉学习分位数函数以实现无分布时间序列预测
  • 多元分位数函数预测器

分位数函数是一种数学函数,它接收一个分位数(分布的一个百分比,范围从0到1)作为输入,并输出一个变量的值。它可以回答诸如“如果我想保证95%的客户在24小时内收到订单,我需要持有多少库存?”这样的问题。因此,分位数函数常用于预测问题的场景中。

然而,在实际情况下,我们很少有一个现成的公式来计算分位数函数。统计学家通常使用回归分析来一次近似单个分位数水平。这意味着,如果你决定为另一个分位数计算它,你必须构建一个新的回归模型——在今天,这通常意味着重新训练一个神经网络。

在我们于今年国际人工智能与统计会议(AISTATS)上展示的两篇论文中,我们描述了一种方法,该方法旨在一次性学习整个分位数函数的近似值,而不是简单地针对每个分位数水平进行近似。

这意味着用户可以查询函数在不同点的值,以优化性能标准之间的权衡。例如,将24小时送达的保证率从95%降低到94%可能会使库存大幅减少,这可能是一个值得做出的权衡。反之,提高保证率阈值——从而提高客户满意度——可能只需要很少的额外库存。

我们的方法对分位数函数背后的分布形状是不可知的。分布可能是高斯分布(钟形曲线或正态分布);可能是均匀分布;也可能是任何其他形状。不对分布形状做出任何假设,使我们的方法能够跟随数据的指引,从而提高了我们近似的准确性。

在我们的第一篇AISTATS论文中,我们提出了一种在单变量情况下学习分位数函数的方法,其中概率和变量值之间存在一一对应关系。在第二篇论文中,我们考虑了多元情况。

分位数函数

任何概率分布——比如说,一个群体中身高的分布——都可以表示为一个函数,称为概率密度函数。该函数的输入是一个变量(特定身高),输出是一个正数,代表该输入的概率(该群体中具有该身高的人所占的比例)。

一个有用的相关函数是累积分布函数,即变量取值等于或低于特定值的概率——例如,身高5英尺6英寸或更矮的人口比例。累积分布函数的值介于0(没有人矮于0英尺0英寸)和1(100%的人口矮于500英尺0英寸)之间。

从技术上讲,累积分布函数是概率密度函数的积分,因此它计算的是目标点之前概率曲线下的面积。在低输入值下,累积分布函数输出的概率可能低于概率密度函数输出的概率。但由于累积分布函数是累积的,它是单调非递减的:输入值越高,输出值越高。

如果累积分布函数存在,分位数函数就是它的逆函数。分位数函数的图形可以通过翻转累积分布函数图形来生成——即,围绕一条从图形左下角延伸到右上角的对角线将其旋转180度。

与累积分布函数一样,分位数函数也是单调非递减的。这是我们的方法所依据的基本观察。

单变量情况

传统方法估计分位数函数(仅在特定点估计)的缺点之一是可能导致分位数交叉。也就是说,由于每个预测基于不同的模型,并在不同的局部数据上训练,因此对于给定概率的预测变量值可能低于为较低概率预测的值。这违反了分位数函数单调非递减的要求。

为了避免分位数交叉,我们的方法同时为多个不同的输入值(即分位数)学习一个预测模型,这些输入值在0和1之间等间隔分布。该模型是一个神经网络,其设计使得每个后续分位数的预测是前一个分位数预测的增量。

一旦我们的模型为几个锚点学习到估计值,从而强制分位数函数的单调性,我们就可以通过锚点之间的简单线性外推来估计函数,并使用非线性外推来处理函数的尾部。在训练数据足够丰富以允许更密集的锚点分布的情况下,线性外推提供了更准确的近似。

为了测试我们的方法,我们将其应用于一个具有三个任意峰值的玩具分布,以证明我们不需要对分布形状做出任何假设。

多元情况

到目前为止,我们一直在考虑分布适用于单个变量的情况。但在许多实际预测用例中,我们希望考虑多元分布。

例如,如果某个产品使用一种不包含在内的稀有电池,那么对该电池需求的预测很可能与对该产品需求的预测相关。

类似地,如果我们想预测多个不同时间范围内的需求,我们会期望连续预测之间存在某种相关性:需求不应该波动得太剧烈。跨时间范围的多元概率分布应该比每个范围的单独单变量预测更好地捕捉这种相关性。

问题在于,多元分位数函数的概念定义不明确。如果累积分布函数将多个变量映射到一个概率,那么在反向执行此映射时,应映射到哪个值?

这是我们在第二篇AISTATS论文中解决的问题。核心观察再次是分位数函数必须是单调非递减的。因此,我们将多元分位数函数定义为一个凸函数的导数。

凸函数是处处趋向于单一全局最小值的函数:在二维中,它看起来像一条U形曲线。函数的导数计算其图形的斜率:同样在二维情况下,凸函数的斜率在接近全局最小值时是负值但逐渐变平,在最小值处为零,在另一侧则正值不断增加。因此,导数是单调递增的。

这个二维图像很容易推广到更高维度。在我们的论文中,我们描述了一种训练神经网络学习作为凸函数导数的分位数函数的方法。该网络的架构强制了凸性,并且,本质上,模型使用其导数作为训练信号来学习凸函数。

除了真实世界的数据集,我们还在跨多个时间范围同时预测的问题上测试了我们的方法,使用了一个遵循多元高斯分布的数据集。我们的实验表明,确实,我们的方法比单变量方法更好地捕捉了连续时间范围之间的相关性。

这项工作延续了某机构将分位数回归与深度学习相结合以大规模解决预测问题的研究路线。它特别建立在2017年由某机构科学家团队提出的MQ-CNN模型的工作基础之上,该模型的扩展目前正为某机构的需求预测系统提供支持。当前的工作也与样条分位数函数RNN密切相关,后者与多元分位数预测器一样,最初是一个实习项目。

所有这些方法的代码都可以在开源的GluonTS概率时间序列建模库中找到。

致谢

如果没有我们出色的合著者的帮助,这项工作将不可能完成,我们感谢他们对这两篇论文的贡献:Kelvin Kan、Danielle Maddix、Tim Januschowski、Konstantinos Benidis、Lars Ruthotto、Yuyang Wang和Jan Gasthaus。

研究领域

  • 运筹学与优化
  • 机器学习

标签

  • 概率预测
  • 需求预测
  • 时间序列FINISHED

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分位数函数
  • 单变量情况
  • 多元情况
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档