我们提出了一种专门针对预测应用而设计的、用于编码分类型特征的新方法。本质上,该方法通过建模与每个类别相关的量值的趋势来编码分类型特征。在我们的实验中,该方法在预测精度和偏差方面均展现出显著的性能优势,因为它使基于树的集成模型能够更好地建模和外推趋势。
引言
这项研究的动机Artefact 承接的众多客户预测项目Artefact 我们的提升模型在预测时表现出明显的偏差。通过诊断阶段的分析,我们发现集合学习模型中偏差的主要来源之一,在于其难以准确建模趋势和波动水平。
下文中,我们将阐述为何以及如何采用一种新型方法对分类特征进行编码。基于我们在某客户零售预测项目以及多个公开数据集上的实验,我们证明了该技术能够有效缓解偏差并提高准确率。
推广与趋势,为什么这么复杂?
增强学习算法在进行外推时往往难以应对
提升算法在建模和外推趋势方面存在困难,因为它们无法预测训练集未出现或叶节点中缺失的新值。“线性树”模型试图缓解这一问题,但我们的测试表明,该方法的效果尚不明确。
经典编码倾向于静态预测
提升法中最常用的编码方法会强化自变量与因变量之间的静态关系,从而在存在趋势的情况下加剧偏差。下图说明了这一现象:

简化的可视化图示,突出了提升算法中使用的分类特征编码的静态特性
我们承认上述表述过于简单化,因为决策树更为复杂,能够基于多个因素识别非线性关系。事实上,“颜色为黑色”这一条件可能与“月份为六月”相关联。在这种情况下,“颜色为黑色”这一条件所产生的影响并非在所有情况下都相同。但让我们从更宏观的角度来看:
我们的创新方法:类别特征的动态编码
动态编码的基础(v1,不含项目级别)
简而言之,我们对分类特征的编码方法可以概括为:我们对每个类别的趋势成分进行建模,并利用这些趋势值来编码该分类特征。
下图展示了针对黑色和金色这两个颜色类别,静态均值编码与趋势基编码之间的差异。

展示动态编码原理的示意图,其中涉及对每个类别的趋势建模
在我们的实验中,我们选择使用Prophet来提取趋势分量。当然,也可以考虑其他时间序列预测模型。
请注意,静态均值编码意味着黑色商品的销量在任何时间点均处于每月100件的平均水平。而动态编码则能够反映黑色商品的增长趋势,并能据此对未来进行外推。关于金色商品,同样可以做出类似的论述。因此,在目标变量在各类别中呈现陡峭趋势的数据集中,我们的方法将特别有用。
我们的主要目标是让模型能够更轻松地适应自变量与待预测因变量之间不断变化的关系。因此,这种动态编码方法也可应用于数值型特征。以价格为例。尽管价格是数值型的,且模型可以直接基于它构建规则,但人们对廉价或昂贵商品的偏好仍可能随时间演变,并呈现特定的销售趋势。 例如,在经济危机背景下,平价产品的销量可能呈上升趋势,而高价产品的销量则可能呈下降趋势。将“平价”视为一类,“高价”视为另一类,我们可以为价格特征提出一种动态编码方案,就像我们对颜色所做的那样。
需要注意的是,对于数值型特征,模型中既可以使用基础变量,也可以使用动态编码后的变量,因为它们能提供不同类型的信息。
更加重视动态功能(v2 支持项目级别)
虽然这种新的编码方法有所改进,但在分析特征重要性时,分类特征的重要性往往不足以对预测产生显著影响。为了赋予动态特征更大的权重,从而促进更好的建模和趋势外推,我们针对每个时间序列/项目分别调整编码值。

表示动态编码两个组成部分的公式:类别层面和项目层面
回到我们的颜色示例,假设存在两件不同的黑色商品,这使得“黑色”这一类别的动态编码能够根据每件商品自身的历史销售情况而有所不同。

通过一个简单示例说明动态编码计算的表格
实验与结果
客户数据集
我们运用该方法为零售行业的一位客户进行了销售预测。为了确保该方法的有效性,我们在广泛的范围内对其进行了全面验证。以下是关于实验背景的一些数据:

总体而言,该方法被证明非常高效,在9个产品范围和5个交叉验证折中,偏置的平均绝对降幅为9.82%,预测精度的平均绝对增幅为6.29%。
下一节将通过在公开数据集上进行测试,验证我们方法的有效性。
零售店销售数据集
在这个简化的案例研究中,我们使用了Kaggle上的“商店销售额——时间序列预测”数据集。该数据集在分析平均销售额时间序列时呈现出陡峭的趋势,这使得我们的方法尤为适用。 此外,选定的预测期为三个月,这一时间跨度足够长,足以充分利用动态编码的额外外推能力。为了演示目的,我们将数据集范围限定在 2016 年 3 月 31 日,即地震发生之前,此后销售额曲线趋于平缓。
在进行任何编码之前,我们的初始数据集约75%为数值型特征,包括滞后项、滑动均值、日历特征和节假日事件。其余25%为分类型属性,例如产品系列、门店编号、城市等。
我们训练了两个不同的模型:一个采用通过我们自定义的方法动态编码的分类特征,另一个则使用LightGBM对分类特征的原生处理方式。
通过比较两者的性能,我们发现动态编码方法取得了显著的提升。下表总结了相关结果:

LightGBM编码方法与动态编码在均方根误差(RMSE)、准确率(FA)和偏差百分比(%Bias)方面的比较

每周平均销售额 + 3个月预测(动态编码与LightGBM编码方法的对比)
如上图所示,采用动态编码的模型能够有效捕捉趋势并进行外推,而另一种模型则难以做到这一点。
使用方法与限制
我们的方法在以下场景中表现尤为出色:时间序列呈现明显的趋势,且预测时限足够长,足以从趋势外推中获益。 此外,随着我们将更多具有显著预测 能力的分类特征动态编码并纳入模型,本方法对预测效果的提升也随之增强。但需注意的是,其他编码方法也有其独特优势,在不同情境下可能更具优势。此外,结合这两种编码类型有望获得更佳的预测结果。
结论
我们计划在未来几个月内发表一篇论文,其中将详细介绍我们的方法和实现方案。敬请期待后续更新!

博客







