APP下载

基于深度学习的餐饮客户流失预测

2022-11-25李周辉

现代计算机 2022年17期
关键词:用餐餐饮神经网络

李周辉

(广州华商学院,广州 510000)

0 引言

餐饮客户流失是指用户与餐饮企业之间不再有交易行为的产生。在激烈的市场竞争环境中,餐饮客户拥有更多的选择空间和消费渠道。如何提高餐饮用户的忠诚度是餐饮企业营销人员一直在讨论的问题。大规模餐饮客户的异常变动往往意味着一个市场的变更和调整。建立餐饮客户流失模型的目的是通过对数据库中餐饮客户历史数据的分析和挖掘,由数据挖掘分析技术人员给出这些餐饮客户的历史特征,然后由市场人员针对这些餐饮客户制定挽留措施。由此可见,建立餐饮客户流失模型的优点:①可以尽早地发现餐饮客户的流失倾向,从而做到有备无患;②可以通过餐饮客户以往的历史数据,由市场人员制定出有效的挽留措施,从而做到有的放矢。通过该模型,可以最大限度地降低餐饮客户的流失率,将企业的损失降至最低。

餐饮客户流失问题是一种二分类问题,也就是完成一种是与否的判断,因此有监督学习算法大量地应用在客户流失预测问题上。目前,大多数的研究主要是针对电信类用户做流失预测[1],使用的方法大概分为两种类别:①传统的机器学习方法,类似于逻辑回归、贝叶斯估计、支持向量机[2]等,其中,王观玉等[3]将主成分分析应用在特征提取上,来消除数据间的冗余,从而提高支持向量机的预测结果。该方法虽然能够降低数据维度,但对于数据的可解释性相对较差,比较依赖数据原始特征;②人工智能的方法,李洋[4]通过分析客户群中不同方面的相关属性特征,对比不同的预测模型,验证了神经网络预测的有效性。但该方法对于数据特征的选择不适用于当前模型,而且特征维度过多,容易影响模型的拟合能力。马文斌等[5]通过深度学习研究进行客户流失预测时,并没有对原数据进行相关特征的选取,导致模型拟合的程度不高。

针对上述研究,为了能够得到较好的预测结果,本文采取的主要措施有以下几个方面:

(1)分析影响餐饮业顾客流失的因素,确定相关的影响因子。

(2)研究餐饮数据特征,对原始数据进行数据分析,提取相关的数据信息;对原始特征做进一步的合并,为数据降维。

(3)构建合适的深度学习神经网络模型,对原始数据做预测。

1 数据获取

本文选取的数据是某餐饮企业的客户消费数据,其中包括用户编号、最后一次用餐时间、用餐人数、消费金额、用户类型。用户类型分为两种:非流失和准流失。本文主要针对准流失用户进行预测,其中非流失顾客数据3930条,准流失顾客数据2073条,总计6003条顾客用餐信息。个别客户消费记录见表1。

表1 客户消费记录

2 数据处理

2.1 数据特征的选取

对于餐饮企业来讲,客户流失因素主要有以下四点:

(1)菜品因素,如菜品味道不好、菜品单一或不齐全、菜品不新鲜。

(2)服务因素,如服务环境脏、服务秩序乱、服务态度差、服务效率低、服务能力弱、收费不合理等。

(3)客户自身因素,客户往往对菜品或服务期望太高,而实际消费体验比较差,导致心理不平衡,产生不满情绪;客户消费逐渐多样化、多层次化、复杂多变性和非理性化,因此,客户在消费时,并不承诺放弃尝试其他餐厅的就餐体验;客户工作和生活地点变更,采取就近就餐的原则。

(4)竞争者因素,其他餐饮企业通过优惠活动或广告宣传等建立了某种竞争优势,可能吸引走更多客户。

而客户流失的主要特征体现在以下四个方面:

(1)用餐次数越来越少。

(2)很长时间没来店里消费。

(3)平均消费水平越来越低。

(4)总消费金额越来越少。

基于这四个方面,本文构造了四个相关客户流失特征:

(1)总用餐次数,即观测时间内每个客户的总用餐次数。该特征需要对同一顾客原有数据中的就餐次数做累加运算。

(2)客户最近一次用餐的时间距离观测窗口结束的天数。该特征中需要选定观测窗口的结束时间,本文的观测结束时间为2016年7月31日,计算方式就是以最后一次用餐时间减去观测结束时间。

(3)客户在观测时间内的总消费金额。该特征是把同一顾客每次用餐的销售额进行累加运算。

(4)客户在观测时间内用餐人均销售额,即客户在观察时间内的总消费金额除以用餐总人数。该特征是客户在观测时间内的总消费金额除以总用餐次数。

处理后的用餐消费记录见表2。

表2 处理后的用餐消费记录

2.2 数据清洗

经过特征工程后的数据仍然会存在一些缺失值、噪声数据、不正确数据等“脏”数据。它们的存在可能会使得建模过程中出现混乱,从而导致输出结果出现异常,因此需要对特征选取后的数据再进行数据清洗。本实验中的数据清洗主要集中在空数据上,主要表现为有用户编号,但是不存在任何消费信息,这是一种很常见的插入异常问题,也有可能是顾客退费产生的,总之这样的异常数据是必须要进行处理的,给定的解决措施就是删除这些没有消费信息的数据,这不会对后面的分析结果产生任何影响。

2.3 数据标准化处理

不同数据之间存在单位差异的问题,单位差异的存在最直观的影响就是数据之间的大小范围不同,如果直接拿差异大的数据进行分析,就会导致模型拟合非常困难,因此,需要对数据进行标准化处理,来消除不同单位对数据的影响,标准化的公式如式(1)所示,使得处理后的数据标准差为1,均值为0。

3 基于深度学习的神经网络预测模型

目前常用的深度学习[6]框架有TensorFlow、keras、Pytorch等,本文采用keras进行深度神经网络的搭建。神经网络的基本组成单元是神经元,神经元的通用模型如图1所示。

其中x1,x2,…,xm为输入信号,w1,w2,…,wm为输入变量到求和节点的对应权重,b为求和时的偏置,假设求和节点的输出为∂,则有:

而求和后的结果一般不直接输出,需要通过激活函数作用取消其线性特征后,才输出结果,记作y,对应的计算方式为:

本文采用的深度学习神经网络结构拓扑图如图2所示。其中包含1个输入层,3个隐藏层和1个输出层。

输入层:数据的输入来源,由于影响客户流失的主要原因有4个,所以输入元素个数也对应为4个。

隐藏层:数据的中间状态,可以看成数据的中间输出节点,无论深度学习中间层有多少,都属于隐藏层,它能提高深度学习的网络复杂性,但不是越多越好,过多的隐藏层可能会降低模型的泛化能力,从而导致过拟合,直观的结果就是模型在训练集上拟合效果好,但在测试集上拟合效果差。本模型的隐藏层总共有3层,分别有128、64、32个神经元,每一层的每一个神经元都是运用式(2)来计算中间结果的,其中选用的激活函数为ReLu函数,其计算方式如式(4)所示。ReLu函数是一种非饱和函数,能在拟合过程中增加非线性的特性,也能防止梯度消失的问题。另外,为了使模型具备一定的泛化能力,使用了dropout。在训练过程中能够按照一定概率随机丢弃部分节点,减少特征之间的相互作用,从而提高模型的泛化能力。本模型中3个隐藏层的dropout参数值均设置为0.2,也就是有20%的概率在计算过程中丢弃该节点进行求和。

输出层:数据的最终输出,本案例是一个二分类问题,输出结果是一个一维数据,其取值范围是0到1之间的数值,因此在输出之前需要使用的激活函数就是sigmoid,如式(5)所示。

模型选好之后,还要选择合适的损失函数,来判断当前模型预测的好坏。也就是用损失函数来表示预测结果与实际数据的差距程度。输出结果是一个0到1之间的数据,与概率的取值范围一致。因此本模型可以使用二分类的交叉熵作为损失函数,其计算过程如式(6)所示,其中J(ω)代表某一批次下的损失函数值,m代表一个批次下样本的数量,本案例中每一批次的样本数量为20个,也就是m取20。yi是第i个样本的实际标签值,因为只有两类,所以实际标签取值就只有0和1两种情况。hw(xi)代表某一批次下第i个样本的预测值,也就是输出层的输出结果。损失函数的计算结果越小说明模型的拟合能力越强,因此模型需要以损失函数为依据不断调整模型中的各个参数来使损失函数值达到最小。

4 实验结果与分析

实验中使用的数据按照80%训练集,20%测试集的方式进行模型的训练和预测,实验分别采用Logistic回归、SVM这两种常用的算法构建预测模型,与本实验所采用的深度神经网络模型进行比较。比较过程所采用的指标主要是精确度、召回率和F1值。对应的精确度=A/(A+C);召回率=A/(A+B);F1=(2*精确度*召回率)/(精确度+召回率)。

本文样本主要分为两类:非流失和准流失,实验中给定的评判指标主要针对流失样本,也就是以一类数据的好坏来评估模型。精确度表示预测结果为流失顾客中判断正确样本的比例;召回率表示预测结果中实际为流失顾客的命中比例。这两个指标都是越高越好,只是关注的侧重点不同,一个专注准确率,另一个专注命中率。而F1值是精确度和召回率的调和均值,是两者的综合评价指标。表3为混淆矩阵。

表3 混淆矩阵

表4为不同模型的预测结果对比,从表中可以看出,不同模型在测试集上的表现都在90%以上,主要原因是相关的数据处理中提取了相关的特征,而且特征维度相对小,相关性较大。但是,在所有模型当中,深度神经网络(DNN)的各个表现都是最好的。从精确度上来讲,Logistic回归和SVM的数值是一样的,均达到了94%的水平,而DNN是最高的,能达到96%的水平。这说明DNN算法的预测准确性高。对于召回率而言,Logistic回归和DNN的数值是一样的,均达到92%的水平,而SVM方法相对较低,这说明DNN与Logistic回归对于结果的命中率是一样的。从F1值上来讲,DNN是所有方法中最高的,达到了94%,这说明从综合的角度来说,DNN的综合性更好。

表4 不同模型的预测结果对比

5 结语

客户流失问题是一个不断发展的问题,它涉及的商业情境是方方面面的,早期的研究主要是应用在电信用户的客户流失中,而对于餐饮类数据的研究却很少。另外很多成熟的算法,类似Logistic回归和支持向量机应用在数据量小时虽然也有不错的预测表现,但随着数据量不断的累计,就需要更先进的方法来适应新的变化。深度学习在处理大规模数据上具有明显的优势,除了各式各样的第三方库的支持,在各大网站上也有相应算力设备的支持。为探究深度学习在餐饮顾客流失问题上的预测能力,本文构造了包含3个隐含层的深度学习神经网络,并与Logistic回归和支持向量机的预测结果进行比较,实验结果表明,在经过同样的特征处理后的数据集上,深度神经网络模型的预测能力是最好的。

猜你喜欢

用餐餐饮神经网络
基于神经网络的船舶电力系统故障诊断方法
基于递归模糊神经网络的风电平滑控制策略
可怕的餐饮外卖
文明用餐
文明用餐
文明用餐
制止餐饮浪费,从你我做起
基于神经网络的中小学生情感分析
用餐时间
基于Q-Learning算法和神经网络的飞艇控制