用 AI 算分位数回归:预测八和预测十,为什么都能拿到最低损失

昨天 3阅读

给服务耗时做预测时,低估与高估的影响可能不同。分位数回归通过不对称损失表达这种取舍。可把问题缩小成“所有记录都报同一个数”:即便数据固定,最小损失也未必只有一个预测值。让AI交出整段斜率,比只交一个百分位数更有解释力。

用 AI 算分位数回归:预测八和预测十,为什么都能拿到最低损失

AI模型生成的概念插图:两侧不同斜率表示不对称惩罚;没有精确坐标,不是正文数据图、训练曲线或软件截图。

先声明残差的方向

五个虚构耗时为[1,2,3,8,10],暂不考虑输入特征,统一预测q。设分位水平τ=0.8,残差定义为真实值y减预测q。若低估,即y大于q,损失为0.8×(y-q);若高估,则为0.2×(q-y)。相同绝对误差下,低估代价是高估的4倍。

这个定义叫pinball损失。本文先算五项总和,不额外加入正则项。若要与mean_pinball_loss比较,再除以样本数5;统一除法不会改变本例的最优q,但会改变日志数值。τ表示所拟合的分位水平,不是某一次预测正确的概率。

把候选值逐项代入

先取q=3,五项损失为[0.4,0.2,0,4,5.6],总和10.2。取q=8时,五项变成[1.4,1.2,1,0,1.6],总和5.2。把预测再抬到9,得到[1.6,1.4,1.2,0.2,0.8],总和仍为5.2。

取q=10时,五项为[1.8,1.6,1.4,0.4,0],又是5.2。单靠三个候选相等,还不能证明中间全部相等,更不能证明没有更好的候选。下一步要看预测移动一点,各项如何增减。

四个高估项正好抵消一个低估项

当q严格位于8与10之间,前四个观测都低于q。q每增加1,它们各增加0.2损失,合计增加0.8;最后一个观测仍高于q,损失减少0.8。因此总斜率为4×0.2-1×0.8=0,整个区间的总损失都不变。

当q在3与8之间,只有前三个观测被高估,另外两个被低估,总斜率为3×0.2-2×0.8=-1,向右移动会降低损失。q超过10后,五项都被高估,总斜率为5×0.2=1,再往右反而增加。结合连续性,最优集合正是闭区间[8,10]。

程序用分数算术核对全部候选值,并对每对相邻观测之间计算斜率,避免浮点误差把平台误报成轻微上升。也可检查q=7和q=11,两边的总损失都是6.2,均高于最小值5.2。

分位数约定与预测保证分开处理

数据软件可能按不同分位数约定,在这段最优集合里选择8、某个插值值或其他代表点。得到不同数字时,应先比较目标函数、插值定义与正则项,不能仅凭结果不等就判定某个实现错误。一般经验分位数问题允许这样的非唯一性。

真实分位数回归会让q随输入变化;本例只是常数模型的完整推导。拟合τ=0.8不自动保证未来每种输入都恰好有八成观测低于预测,数据漂移与模型限制仍需检查。也不要把它直接当作已校准的预测区间,区间覆盖是需要另外评估的问题。

资料核对日期:2026年10月2日。算例为原创教学设定,已用独立程序复核,未进行真实模型训练或效果测试。

参考资料

scikit-learn:Pinball loss定义

scikit-learn:mean_pinball_loss

文章版权声明:除非注明,否则均为云鹊BLOG原创文章,转载或复制请以超链接形式并注明出处。