
Python数据分析与应用(第2版)PPT课件(共9章)第9章 餐饮企业客户流失预测.pptx
35页餐饮企业客户流失预测 2目录1预处理餐饮企业数据了解餐饮企业客户分析需求2使用决策树和支持向量机进行餐饮客户流失预测3 3了解餐饮企业客户流失预测背景1. 分析餐饮行业现状 餐饮行业作为我国第三产业中的一个传统服务性行业,始终保持着一定的增长势头 同时,餐饮行业的收入在一定程度上反映了经济的发展 根据国家统计局数据显示,餐饮行业餐费收入从2010年2019年都处于增长的趋势,但是同比增长率却基本低于20%,如图所示 4了解餐饮企业客户流失预测背景 某餐饮企业正面临着如下问题房租价格高人工费用高服务工作效率低等问题 企业经营的目的为盈利,而餐饮企业盈利的核心是其菜品和客户,也就是其提供的产品和服务对象 如何在保证产品质量的同时提高企业利润,成为某餐饮企业急需解决的问题 5了解餐饮企业客户流失预测背景2. 了解餐饮企业数据的基本情况特征名称特征说明特征名称特征说明USER_ID客户IDIPIP地址MYID客户自编码DESCRIPTION备注ACCOUNT账号QUESTION_ID问题代码NAME姓名ANSWER回复ORGANIZE_ID组织代码ISONLINE是否ORGANIZE_NAME组织名称CREATED创建日期DUTY_ID职位代码LASTMOD修改日期TITLE_ID职等代码CREATER创建人PASSWORD密码MODIFYER修改人EMAIL电子邮箱TEL 本案例将使用某餐饮企业的系统数据库中积累的大量与客户用餐相关的数据,其中包括客户信息表(user_loss.csv)和订单详情表(info_new.csv)。
客户信息表中主要记录了2431位客户的基本信息,包括客户ID、姓名、年龄、性别等,其特征说明如表所示 6特征说明(续表)了解餐饮企业客户流失预测背景特征名称特征说明特征名称特征说明LANG语言stuNo学号THEME样式FIRST_VISIT第一次登录weixinPREVIOUS_VISIT上一次登录sex性别LAST_VISITS最后一次登录poo籍贯LOGIN_COUNT登录次数address地址ISEMPLOYEE是否职工age年龄STATUS状态type客户状态 7订单详情表记录了客户共6611条的消费记录,包含了21个特征,其特征说明如表所示了解餐饮企业客户流失预测背景特征名称特征说明特征名称特征说明info_id订单IDlock_time锁单时间emp_id客户IDcashier_id收银IDnumber_consumers消费人数pc_id终端IDmode消费方式order_number订单号dining_table_id桌子IDorg_id门店IDdining_table_name桌子名称print_doc_bill_num打印doc账单的编码expenditure消费金额lock_table_info桌子关闭信息dishes_count总菜品数order_status订单状态accounts_payable付费金额phoneuse_start_time开始时间name名称check_closed支付结束 8认识餐饮客户流失预测 客户流失指客户出于某种原因转向其他企业产品或服务的现象。
企业进行餐饮客户流失预测最为根本的目的是提高盈利提高盈利的方法如下降低成本增加宣传最直接提高盈利的方式可以带来更多的客户和使客户产生消费习惯 9认识餐饮客户流失预测 在餐饮行业中维护一个老客户的成本 开发一个新的用户 并且老用户在复购的同时无意间对企业进行了宣传,带动了新客户的产生,也减少了宣传的成本 可见一旦老客户流失,将对企业带来不小的损失,因此减少客户流失尤为重要 10熟悉餐饮企业客户流失预测的步骤与流程 通过对某餐饮企业的数据进行分析,构建客户流失预测模型,对客户的流失进行预测,以便企业及时作出应对措施 餐饮企业数据客户流失预测流程如图所示 11熟悉餐饮企业客户流失预测的步骤与流程 餐饮企业数据客户流失预测流程主要包括以下步骤读取本案例所需的客户信息表和订单详情表探索客户信息表中年龄、性别与客户流失的关系查看数据中的重复值情况,并对异常值、缺失值进行处理构建总用餐次数、距观测窗口结束的天数、人均销售额、总消费金额4个客户流失特征将数据划分为训练集和测试集,并使用决策树和支持向量机模型构建客户流失预测模型,对客户流失进行预测使用精确率、召回率、F1值评价决策树和支持向量机模型的效果。
12目录1预处理餐饮企业数据了解餐饮企业客户分析需求2使用决策树和支持向量机进行餐饮客户流失预测3 13数据探索 在客户信息表和订单详情表中都包含了大量的特征,无法将全部特征用于数据建模,因此需对特征进行筛选 在客户信息表的特征筛选前,选择的客户的年龄、性别进行探索,了解他们与客户流失存在的关系 针对客户的年龄提出猜测,随着客户年龄的升高,客户流失数量由大变小 对于性别不同的客户较多的男性客户女性客户 因为一个餐饮企业的经营模式不会轻易发生改变,所以在吸引一种性别的客户时可能会容易导致另一种性别客户的流失会挑选用餐方便、上菜快速、类性价比较高的餐馆可能会偏重于选择口味合适、环境卫生较好的餐馆 14查看重复值 在预测分析中,如果数据存在一定的重复值将会影响特征值的计算,导致模型的预测出错,因此在构建特征前需要去除数据的重复值 在客户信息表中每个客户的客户名应该是唯一的,因此如果客户信息表中的客户名中存在不唯一的值,那么将会视为重复值 同样,订单详情表中客户名和用餐时间的组合也将是唯一的,如果存在不唯一的值,那么也将会被视为重复值 15处理异常值 因为用于构建客户流失特征主要使用的为订单详情表的数据,所以本小节主要对订单详情表进行异常值处理。
经观察发现,数据中存在一张桌子同时被不同用户使用,这属于异常情况 因此,订单详情表的异常值将同时满足以下两个条件两个订单的桌子编号(dining_table_id)和用餐时间(use_start_time)相同两个订单除了桌子编号和用餐时间相同外其他特征的值基本不同 当异常值数据的数量远小于总数据的数量时,即可直接删除 16处理缺失值 在客户信息表中,存在大量全为缺失值的特征,可能是客户在填写资料时存在一定的遗漏 虽然订单详情表是由系统记录,数据相对完整,但是同样存在一定的缺失值 对于缺失值可以采取的操作有很多,常用方法如下删除法替换法差值法等 虽然删除法是较为常用的处理缺失值方法之一,但是当缺失值过多时,直接删除带有缺失值的行或列将会导致大量数据特征减少 因此,在进行缺失值处理前需要先检测缺失值的数量 17构建客户流失特征 在餐饮企业中,客户流失主要体现在以下4个方面用餐次数越来越少长时间未到店进行消费人均消费处于较低水平总消费金额越来越少 基于客户流失主要体现的4个方面,本案例将构造4个关于客户流失的特征如下总用餐次数(frequence)观测时间内每个客户的总用餐次数距观测窗口结束的天数(recently)。
客户最近一次用餐的时间距离距观测窗口结束的天数人均销售额(average)客户在观测时间内的总消费金额除以用餐总人数总消费金额(amount)客户在观测时间内消费金额的总和 18目录1预处理餐饮企业数据了解餐饮企业客户分析需求2使用决策树和支持向量机进行餐饮客户流失预测3 19决策树基本结构如图所示了解决策树算法1. 基本原理 20了解决策树算法 决策树是一个树状结构,包含一个根节点、若干内部节点和若干叶节点 根节点包含样本全集,叶节点对应决策结果,内部节点对应一个特征或属性测试 从根节点到每个叶节点的路径对应了一个判定测试序列,决策树学习目的是为了产生一颗泛化能力强,即处理未知样本能力强的决策树 决策树基本流程遵循简单而直观的分而治之策略,树的生成是一个递归过程 21了解决策树算法 构造决策树的核心问题在于每一步如何选择适当的特征对样本做拆分,主要算法如下CARTID3C4.5 决策树的剪枝是为了防止树的过拟合,增强其泛化能力,包括预剪枝和后剪枝使用Gini指数作为选择特征的准则使用信息增益作为选择特征的准则使用信息增益比作为选择特征的准则 22了解决策树算法2. 适用场景 在某种程度上很多分类算法的能力都超过了决策树算法。
但是可以轻松的可视化分类规则的能力让决策树的地位无可替代 可视化规则在各个行业上都有相对广泛的用途 决策树常被用于分析对某种响应影响最大的因素,如判断具有什么特征的客户流失概率更高 23了解决策树算法3. 决策树算法优缺点 决策树的优点表现如下结果易于理解和解释能做可视化分析容易提取出规则可同时处理标称型和数值型数据,并且能很好地扩展到大型数据库中模型大小独立于数据库大小 决策树的缺点表现如下特征太多而样本较少的情况下容易出现过拟合忽略数据集中属性的相互关联在选择ID3算法计算信息增益时结果偏向数值比较多的特征 24了解决策树算法4. 主要参数介绍scikit-learn库tree模块提供了DecisionTreeClassifier类用于构建决策树分类模型,DecisionTreeClassifier类的基本使用格式如下class sklearn.tree.DecisionTreeClassifier(criterion=gini, splitter=best, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, ccp_alpha=0.0) 25了解决策树算法DecisionTreeClassifier类的常用参数及其说明如下表所示。
参数名称参数说明criterion接收“gini”“entropy”表示节点(特征)选择的准则默认为ginisplitter接收“best”“random”表示特征划分点选择标准默认为bestmax_depth接收int表示决策树的最大深度默认为Nonemin_samples_split接收int、float表示子数据集再切分需要的最小样本量默认为2min_samples_leaf接收int、float表示叶节点所需的最小样本数默认为1min_weight_fraction_leaf接收float表示在叶节点处的所有输入样本权重总和的最小加权分数默认为0.0max_features接收int、float、str表示特征切分时考虑的最大特征数量默认None 26了解决策树算法DecisionTreeClassifier类的常用参数及其说明(续表)参数名称参数说明random_state接收int、RandomState实例表示用于初始化质心的生成器,值为一个整数,则确定一个种子默认为Nonemax_leaf_nodes接收int表示最大叶节点数默认为Nonemin_impurity_decrease接收float。
表示切分点不纯度最小减少程度默认为0.0min_impurity_split接收float表示切分点最小不纯度默认为Noneclass_weight接收dict、dict列表、“balanced”表示分类模型中各种类别的权重默认为Noneccp_alpha接收float表示用于最小成本复杂度修剪的复杂度参数默认为0.0 27了解支持向量机算法1. 基本原理 支持向量机(Support Vector Machine,SVM)模型是定义在特征空间的间隔最大的线性分类器,包括核函数,这使得SVM成为实质上的非线性分类器。
