作者: 永洪BI 来源: 永洪科技 时间:2023年07月25日
本文通过一个零售行业销售预测的实战案例来介绍永洪BI V10.1版本的数据变换操作节点和LightGBM算法,以帮助广大用户了解和学习整个数据处理和模型训练、预测、评估的全过程。
我们以一个在7个欧洲国家经营着3000多家药店的连锁企业为例,通过构建模型,可以帮助它的门店经理提前至多六周预测每日的销售额。需要有两张数据表,分别为各个门店的信息数据和从所有门店汇总来的历史销售信息,详细字段描述如下表。门店的销售情况受到许多因素的影响,包括促销、竞争、学校和国家假日、季节性和地区,这个可以根据您的实际情况修改。
表1门店信息字段描述
表2 销售信息字段描述
对于这种预测的场景,我们一般会将其抽象为一个回归问题,LightGBM算法在实际工程项目中对类别型特征的处理非常适合一些金融数据或多因素影响的销量数据建模场景,所以我们选择LightGBM回归。
首先要分析数据,然后对数据进行预处理,永洪BI的深度分析功能提供了几十种数据变换节点,采用了可视化的操作方式,通过鼠标拖拽即可完成流程的搭建。选中商店数据节点,在右侧的数据探索可以查看对字段的统计分析结果。(以下使用的数据处理节点为根据此数据分析选择的,不代表所有场景都需要使用这些节点,需要根据数据情况选择。)
选择CompetitionDistance字段,在统计中缺失值数量显示存在3个缺失值,且各个门店差别较大(最小20,最大75860),故而使用缺失值填充节点处理。
又通过数据分布直方图可知存在数据倾斜,所以需要进行对数变换。为了知道促销距今有多少周,还需要将Promo2SinceYear和Promo2SinceWeek字段的信息合并处理为Promo2Weeks字段,因为销量和促销的时间相关。使用计算列节点,新建对数变换和Promo2Weeks计算列。
因为上述计算过程会出现缺失值,故需要将其填充,否则空值无法分析。
对于销售信息数据,我们从数据探索的盒须图中可以看出Sales字段存在明显偏离其它数据的值。
所以先使用过滤节点,过滤偏离数据,运行后发现此数据并没有参加促销,因为促销才更能影响销量,故将其判断为异常值过滤掉,且不需要未营业时的商店销售数据,因为此数据对销量判断没有意义,故将未营业时数据过滤。
接下来从日期特征提取年、月、日特征,为了后续可以精细的按月判断促销。
因为需要将商店数据中的PromoInterval字段与销售信息中的Month字段结合,判断销售记录是否在促销期间发生,所以我们通过联接节点将两个数据合并在一起。
如果想预测商品销量的话,是不是促销月是很重要的信息,所以通过计算列节点新建名称为是否为促销月的数据。
最后,使用过滤节点将最后48天的数据(即过滤大于等于2015年6月14日的数据)划分为测试集,其它为训练集(即过滤小于2015年6月14日的数据)。至此,数据预处理流程结束。
之后,我们在训练集过滤节点后接LightGBM回归节点,并调整其配置参数,如果不是很了解参数,也可以选择自动调参,特征列字段为Promo2Weeks-Fill Null Value、PromoInterval等,目标列选择Sales。
测试集过滤和LightGBM回归节点后接模型应用节点,此流程是为了将训练完成的模型用于测试集,所以模型应用节点的自变量需要和模型的特征列一致(可以直接复制粘贴字段)。因变量需要在选择列中新建变量,命名为predict。
模型应用后接回归性能评估,用各种指标比较真实值和预测值的差距。最后通过连接图片视图、表格视图或数据集视图查看结果。
运行实验后,可以在模型应用结果中查看预测值。除此之外,我们还可以查看在测试集上预测的销售额和测试集中样本的实际销售额的对比图,评估预测准确性。
本案例是一个常用的预测场景,可以大致总结为以下过程,此流程为机器学习的通用流程。
详细的案例介绍您可以下载永洪最新的Yonghong Desktop V10.1了解(点击下载:永洪桌面版),新建实验模型即可查看此销量预测案例。
也可以查看和了解更多内置案例,精准的预测不仅能帮助企业提前制定规划,也可以帮企业降低风险。在数字化转型的大潮中,让我们一起携手前行。
永洪BI
更敏捷、更快速、更强大