高教社杯数模竞赛特辑论文篇-2018年C题:基于 RFMT 模型的百货商场会员画像描绘(附获奖论文及代码实现)

news2024/12/28 3:25:10

目录

赛题

摘要

一、问题的重述

二、模型假设

三、变量说明

四、模型的建立与求解

4.1 数据预处理

4.2 问题一的模型建立与求解

4.2.1 建模思路

4.2.2 模型建立

4.2.3 模型的求解与结果分析

4.3 问题二的模型建立与求解

4.3.1 建模思路

4.3.2 模型建立

4.3.3 模型的求解与结果分析

4.4 问题三的模型建立与求解

4.4.1 建模思路

4.4.2 模型建立

4.4.3 模型的求解和结果分析

4.5 问题四的模型建立与求解

4.5.1 建模思路

4.5.2 模型建立

4.5.3 模型的求解和结果分析

4.6 问题五的模型建立与求解

4.6.1 建模思路

4.6.2 模型建立

4.6.3 模型的求解和结果分析

五、模型的评价与推广

5.1 模型的评价

5.1.1 模型的优点

5.1.2 模型的缺点

5.1.3 模型的改进

5.2 模型的推广

六、参考文献

代码实现

源程序 1: 

 源程序 2:


 

赛题

C题   大型百货商场会员画像描绘

在零售行业中,会员价值体现在持续不断地为零售运营商带来稳定的销售额和利润,同时也为零售运营商策略的制定提供数据支持。零售行业会采取各种不同方法来吸引更多的人成为会员,并且尽可能提高会员的忠诚度。当前电商的发展使商场会员不断流失,给零售运营商带来了严重损失。此时,运营商需要有针对性地实施营销策略来加强与会员的良好关系。比如,商家针对会员采取一系列的促销活动,以此来维系会员的忠诚度。有人认为对老会员的维系成本太高,事实上,发展新会员的资金投入远比采取一定措施来维系现有会员要高。完善会员画像描绘,加强对现有会员的精细化管理,定期向其推送产品和服务,与会员建立稳定的关系是实体零售行业得以更好发展的有效途径。

附件中的数据给出了某大型百货商场会员的相关信息:附件1是会员信息数据;附件2是近几年的销售流水表;附件3是会员消费明细表;附件4是商品信息表,一般来说,商品价格越高,盈利越高;附件5是数据字典。请建立数学模型解决以下问题:

(1) 分析该商场会员的消费特征,比较会员与非会员群体的差异,并说明会员群体给商场带来的价值。

(2) 针对会员的消费情况建立能够刻画每一位会员购买力的数学模型,以便能够对每个会员的价值进行识别。

(3) 作为零售行业的重要资源,会员具有生命周期(会员从入会到退出的整个过程),会员的状态(比如活跃和非活跃)也会发生变化。试在某个时间窗口,建立会员生命周期和状态划分的数学模型,使商场管理者能够更有效地对会员进行管理。

(4) 建立数学模型计算会员生命周期中非活跃会员的激活率,即从非活跃会员转化为活跃会员的可能性,并从实际销售数据出发,确定激活率和商场促销活动之间的关系模型。

(5) 连带消费是购物中心经营的核心,如果商家将策划某次促销活动,如何根据会员的喜好和商品的连带率来策划此次促销活动?

摘要

电商的快速发展给零售运营商带来了较大的冲击,为了持续获取稳定的销售
额和利润,零售运营商需完成对会员的管理与维系工作。完善会员画像,加强会
员管理,维持会员稳定将使得零售业更好地发展。
本文利用该大型百货商场提供的会员信息以及消费明细,完善该商场的会员
画像。本文从购买力、购买时间偏好、消费偏好三个维度分析会员的消费特征。
以会员消费总金额、消费次数、商品购买数量代表会员购买力,同时按季节对会
员消费行为进行分析,随后以特价商品、高价商品消费金额在会员总消费金额的
占比分析会员的消费偏好。
为进一步说明会员群体给商场带来的价值,本文对比了会员与非会员的购买
力。会员群体的消费总金额和商品购买数量略低于非会员群体,原因或是非会员
群体人数较多。但是绘制两类群体的日消费金额曲线后可知,与非会员群体相比,
会员的单日消费总金额增幅较大。
为刻画会员的购买力,本文建立了 RFMT 模型。分别选取会员最后一次消费
的时间间隔、消费频率、总金额、单次购买最高金额作为指标,结合层次分析法
得到相应指标的权重,并计算出每个会员的得分,会员得分则代表着会员的个人
价值。利用 K-means 聚类的方法,根据会员得分进行聚类,得分较高的会员群体
则为商场需要维护的会员群体。
为了合理地判断会员所处的生命周期,本文利用已构建的 RFMT 模型中的相
关指标,再次使用 K-means 聚类的方法对该商场的会员进行聚类,将现有会员划
分为活跃会员、沉默会员、流失会员三类,以便商场管理者对会员进行管理。
在会员的生命周期中,会员状态处于动态变化的过程。为了增加商场的利润,
与发展新会员相比,促进非活跃会员转化为活跃会员会大大降低商场的成本。本
文通过构建非活跃会员的相关指标,使用因子分析法,可计算得各非活跃会员激
活率,激活率越高,则其被激活的可能性则越大。同时,本文以非活跃会员的特
价商品消费金额在总消费金额中的占比作为非活跃会员对促销活动敏感度的反
映,构建线性回归模型分析非活跃会员的激活率与促销活动之间的关系,结果表
明,一定的促销活动有助于提升非活跃会员的激活率。
连带消费是商场经营的核心,本文选取销售数量排名前十的商品作为最受欢
迎的商品,根据会员消费明细表,利用 Matlab 软件构建商品关联表,并使用
Clementine 建立商品的关联规则。商场可对热门商品及其关联商品推出相应促
销活动,同时通过广告投放、邮件推送等方式对促销活动进行推广。
关键词:会员画像; RFMT 模型;生命周期;精准化营销

一、问题的重述

在零售行业中,会员的发展和维系对零售运营商而言至关重要,会员不但
能够为运营商带来稳定的销售额和利润,而且对运营商的营销策略制定起着重要
的作用。但随着电商日益发展,实体商场的会员不断流失,给零售运营商带来了
严重损失,因此商家必须开展各种营销活动来吸引更多的会员以及维系旧会员。
在传统的市场营销中,想准确知道消费者的习惯、偏好、个性等影响消费
者购买行为的因素是十分困难的,企业想对消费者进行精准化营销也难以实现,
因此导致企业浪费了大量的营销资源。在众多大数据工具中用户画像技术是帮助
企业准确识别和分析目标客户的有效工具之一,对于零售运营商的会员发展和维
系,完善会员画像描绘,加强对现有会员的精细化管理,定期向其精准推送产品
和服务,与会员建立稳定的关系是实体零售行业得以更好发展的有效途径。
在本文的研究中,完善商场会员画像是我们的研究重点,针对某大型百货
商场的会员数据以及销售数据,我们需要解决以下问题:
(1) 对该商场的会员消费特征以及会员与非会员差异进行分析,并说明会员
给商场带来的价值;
(2) 建立刻画会员购买力的数学模型,对会员的价值进行识别;
(3) 在某个时间窗口,建立会员生命周期和状态划分的数学模型;
(4) 计算会员生命周期中非活跃会员的激活率,并确定激活率和商场促销活
动之间的关系模型;
(5) 根据会员的喜好和商品的连带率设计促销方案帮助商家策划促销活动。

二、模型假设

为了使得问题更易于理解,我们作出以下合理假设:
假设销售数据录入系统时不存在时间差;
假设销售流水表和会员消费明细表中的一条记录代表一次消费,即不存
在同一次消费产生多条记录的情况;
假设会员的会员卡自开卡日起,除了自行退出外不存在会员卡过期导致
会员退会的情况。

三、变量说明

本文建立模型的过程中主要涉及以下变量,变量及说明如下:

 

四、模型的建立与求解

4.1 数据预处理

题目提供了 5 个附件,附件中的数据给出了商场会员的相关信息:附件 1
是会员信息数据;附件 2 是近几年的销售流水表;附件 3 是会员消费明细表;附
4 是商品信息表;附件 5 是数据字典。
对于众多的会员信息数据,我们需要对数据进行清洗整理,使用 EXCEL
SQL Server 软件对数据做了以下预处理:
剔除数据表中的重复数据;
由于我们只针对附件一中的会员进行管理,附件三中的会员消费记录存
在其他分店的会员,而附件一为本商场的会员,我们将附件一与附件三的数据相
关联,筛选出本商场的会员消费明细,剔除其他分店的会员消费明细;
将附件一、附件二与附件三的数据相关联,分别筛选出附件二中会员与
非会员的数据。
利用以上数据,对问题进行求解分析。

4.2 问题一的模型建立与求解

4.2.1 建模思路

对于问题一,我们运用数据统计分析的方法来对会员信息进行分析。问题中
需要根据会员消费明细表分析会员的消费特征,主要从三个维度来分析:购买力、
时间偏好、消费偏好,具体分析指标如下图所示:
而对于会员与非会员群体之间的差异,我们从购买力以及购买数量的角度深
入分析会员与非会员带给商场的价值差异,进而分析会员给商场带来的价值。

4.2.2 模型建立

我们从购买力、时间偏好、消费偏好三个维度来分析会员的消费特征。
(1) 购买力
反映会员购买力的指标主要有三个,分别为会员消费金额、会员消费宗数以
及商品购买数量。根据会员的消费情况,我们定义了各指标的数据区间以及含义,
如下表所示:
我们在会员购买力维度下将会员群体分成了无消费会员、低消费会员、中低
消费会员、中消费会员、中高消费会员、高消费会员六个等级,并根据会员的消
费情况进行会员购买力分析。
(2) 时间偏好
对于会员消费的时间偏好,我们主要分析会员消费的季节性倾向。仅考虑北
半球的季节更替规律,一般认为每年的 3 -5 月为春季, 6 -8 月为夏季, 9
-11 月为秋季, 12 - 次年 2 月为冬季。
由于会员消费明细数据截取的时间区间为 2015 1 1 -2018 1 4
日,在时间维度上分别分析 2015 2016 2017 三年间的会员消费季节性倾向情
况。
(3) 消费偏好
在会员的消费偏好上我们主要关注特价商品消费占比和高价商品消费占比
这两个指标。
其中,特价商品消费占比是指会员购买特价商品的总金额占会员总消费金额
的比例,即特价商品消费金额 / 总消费金额;
同样地,高价商品消费占比是指会员购买高价商品的总金额占会员总消费金
额的比例,即高价商品消费金额 / 总消费金额。
并且,我们定义在商品信息表的商品类目中标明特价、促销、打折的商品为
特价商品,并考虑百货商场实际销售的商品,定义商品售价在 5000 元以上的商
品为高价商品。

4.2.3 模型的求解与结果分析

1. 会员的消费特征
(1) 购买力
反映购买力的指标为:会员消费金额、会员消费宗数、商品购买数量。在会
员消费数据的统计区间内,本文运用统计分析法对这三个指标进行了分析,结果
如下:
在会员消费总金额指标中,将消费金额分为了 4 个区间,分别代表无消费会
员、低消费会员、中消费会员和高消费会员。在统计区间内,会员消费总金额占
总消费金额的比例如图 2 所示:
从图 2 可以看到,无消费会员的占比最大,为 75% ;低消费会员占比为
17.86% ,中消费会员占比 5.65% ,而消费总金额大于 50000 元的高消费会员仅占
1.48%
将会员消费宗数和购买数量都分成 6 个区间,分别代表 6 个会员等级,即无
消费会员、低消费会员、中低消费会员、中消费会员、中高消费会员、高消费会
员。在统计区间内,会员消费宗数的情况和会员购买商品的数量情况如图 3 、图
4 所示:
从饼状图中可以看到,在所有会员中消费宗数小于 10 的会员占大多数,而
消费宗数大于 50 的会员仅占 0.9% 。同样地,商品购买数量小于 10 的会员占比
最大,购买数量大于 50 的会员仅占比 1.4%
从以上统计结果可知,无消费会员的占比最大,该商场的大部分会员都存在
开了会员卡不消费的情况;而中、低消费的会员比高消费会员多,表明该商场会
员的购买力一般在中、低消费的水平上。由于存在大量的无消费会员,该商场应
采取一系列促销活动来吸引会员消费,维系会员的忠诚度。
(2) 时间偏好
除了会员购买力能够直观地看出会员的消费特征,从时间上也能看出会员消
费的时间倾向。在时间偏好维度上,本文主要分析会员消费的季节性倾向。在分
析中,一般认为每年的 3 -5 月为春季, 6 -8 月为夏季, 9 -11 月为秋季,
12 - 次年 2 月为冬季。根据会员消费明细数据,统计得到 2015 -2017 年各季
节消费的会员人数情况,如图 5 所示:
明显可以看到, 2015 年的秋季会员消费人数为 0 ,冬季的消费人数与春季和
夏季相比较少;到了 2016 年,会员在冬季的消费人数最少,而在秋季消费的人
最多; 2017 年的会员消费人数在每个季节都较为平均,无明显季节性倾向。总
体来看,该商场的会员主要倾向于春季和夏季消费。
(3) 消费偏好
关注消费者对促销活动、高价商品的敏感度是分析消费者消费特征的一个很
好的方向,在商场的营业中,销售特价商品和高价商品往往是商场提高盈利的渠
道,所以可通过分析会员的特价商品和高价商品的消费情况来分析商场会员的消
费特征。根据会员的消费明细表,可知会员的特价商品和高价商品的消费情况如
表 3 所示。
在会员总消费中,特价商品消费占比 40.51% ,可见会员对于促销活动的特
价商品的购买力较高,而高价商品消费占比 27.54% ,表明会员对高价商品的销
售贡献度还是比较高的。特价商品的销售属于薄利多销形式,通过促销活动吸引
消费者消费;而高价商品的销售量不会像日常用品那样高,但是商品的价格越高,
商场的盈利也越高,二者的销售均能给商场带来高利润收入。
2. 会员与非会员的差异
为了进一步分析客户给商场带来的价值,本文对会员和非会员的购买力进行
了对比分析。同时,考虑到现有数据时间维度的不统一,本文以商场销售流水表
为基准,提取时间节点为 2016 1 月至 2017 9 月的会员、非会员消费明细,
开展分析。
在完成数据表关联后,利用统计分析法统计得,会员消费总金额为
419074889.11 元,非会员消费总金额为 507093746.29 元;会员购买商品总数量
330535 件,非会员购买商品总数量为 477415 件。
非会员的消费总金额略高于会员消费总金额,且非会员购买商品的总数量也
高于会员群体。针对该现象,结合日常生活中的实际情况,可能的原因是非会员
群体的人数多于会员人数。
从会员与非会员的消费总金额情况中可以明显看出,在统计时间段内,大部
分会员每日消费金额比非会员每日消费金额高,会员群体的单日消费总金额增幅
较大,购买力比非会员群体高。但可以注意到在 2016 1 月到 2016 3 月这段
时间会员的每日消费总金额都非常低,相反在这段时间内非会员每日消费总金额
是最高的,即非会员群体是最活跃的。对于此现象,我们推测在该段时间内商场
会员人数处于较少阶段,商场推出一系列促销活动,增加了非会员群体的消费金
额,并借此机会发展新会员,使得非会员群体升级为会员。

4.3 问题二的模型建立与求解

4.3.1 建模思路

对于问题二,需要建立一个能够刻画会员购买力的数学模型,并通过此模型
来识别每一位会员的价值,就是要将每一位会员进行价值分析。
在众多的用户价值分析模型中, RFM 模型是衡量客户价值和增益能力的重
要工具,考虑到本文研究对象为大型百货商场,相对消费会较为高端,可以增加
一个反映会员一次性消费的最高能力的指标,故我们引入改进的 RFM 模型
--RFMT 模型,对会员购买力进行刻画,并通过 RFMT 模型的会员得分对每个会
员进行价值等级划分,最终可得知每一位会员对于商场的价值。

4.3.2 模型建立

RFM 模型的基础上,引入 RFMT 模型衡量会员价值和刻画会员购买力,
应用层次分析法计算 RFMT 模型每个指标的指标权重,构建指标得分规则计算
RFMT 指标的得分,最终通过 K-means 聚类法对会员群体进行价值等级分类。
1. RFMT 模型介绍 [1]
在营销活动中,每个会员的价值因其购买能力和实际需求的不同而各不相
同,寻找一种工具来辨别会员价值至关重要。会员价值模型的建立可以对会员进
行排序分类,然后对会员进行个性化营销。
本文为会员的消费情况建立一个能够刻画每一位会员购买力的 RFMT 数学
模型,它以会员关系领域广泛用来衡量会员价值和描述会员行为的 RFM 模型为
基础,拓展而成。 RFMT 模型有四个指标,指标含义如下:
R Recency
R 表示会员最近一次购买商品的时间间隔天数。理论上,最近一次消费时间
越近的会员应该是比较好的会员,对提供即时的商品或是服务也最有可能会有反
应。 R 指标主要刻画了会员对商场的关注程度。
F
Frequency
F 表示会员在限定时间内购买商品的频率,消费频率越高的会员,其满意度
和忠诚度也就越高。 F 指标主要刻画了会员对商场的忠诚度。
M Monetary
M 表示会员在限定时间购买商品的总金额。消费金额是所有数据库报告的支
柱,直接反应了商场的盈利情况。 M 指标主要刻画了会员的购买力。
T Topest
T 表示单次购买的最高金额,反映的是会员一次性消费的最高能力。
RFMT 模型以上述四个指标为替代变量,通过指标标准化和赋予权重来计算
会员价值,然后根据会员价值来进行均值聚类分析,将会员分成不同的类别,作
为商场精准营销的基础。
2. 层次分析法
(1) 层次分析法基本思想
层次分析法( Analytic Hierarchy Process ,简称 AHP )是将与决策总是有关
的元素分解成目标、准则、方案等层次,在此基础之上对一些较为复杂、较为模
糊的问题进行定性和定量分析的决策方法,它特别适用于那些难于完全定量分析
的问题。
(2) 层次分析法计算权重系数
为了知道各指标体系在综合评价中的重要程度,我们对在同一层评价目标中
各个评价目标对总评价目标作用价值的大小分别赋予一定的权重系数。此处以一
级指标的权重求取为例权重计算步骤为:
a. 建立递阶层次结构模型
对总评价目标进行连续性分解以得到不同层次的评价目标,建立目标树图将
各层评价目标表示出来,如图 7 所示。
b. 构造出各层次中的所有判断矩阵
对目标树自上而下分层一一对比打分,建立成对比较判断优选矩阵,评分标
准见表 4:

 

首先我们进行定性判定:
因为在价值评估中会员的消费额对于企业的利润贡献度较大,所以一般来说
M 应该具有最高的重要性;
F 重在衡量会员的忠诚度,忠诚度越高,对于企业的价值也越高,所以 F
会占到一定的比例;
最高消费额 T 在一定程度上可以体现会员的消费能力,这个因素对于区分价
格敏感型的会员有参考作用;
R 最近一次消费则是关系到一个会员的最近情况,由于对与航空业来说会员
的需求不连续,所以 R 指标对于衡量会员价值权重不高,但从理论上说最近
有购买的会员会比更长时间之前购买的会员对商场具有更高的产品关注度,
营销效果也会好点,所以把 R 也当作其中一个指标参考。
4 个评价目标成对比较判断优选矩阵见表 5:
d. 对权重系数是否符合逻辑进行检验
在确定权系数过程中,依靠主观判断给出的判断矩阵,还必须通过一致性检
验,以便尽可能消除人得主观判断得不一致性。一致性检验通常采用一致性指标
CI 检验该项目的相对优先顺序有无逻辑混乱,一般认为,当 CI<0.01 时,可能逻
辑混乱,即计算所得的各项权重可以接受。
标成对比较判断优选矩阵的特征根。
为了进一步度量不同阶段矩阵是否具有满意的一致性,我们还需引入判断矩
阵的平均随机一致性指标 RI 值。通常采用美国运筹学家 Saaty 教授创立的 1-9
级标度法。 对于 1-9 阶判断矩阵, RI 值见表 6:
CR<0.1 时,即可认为判断矩阵具有满意的一致性,否则就需调整判断矩
阵,并使之具有满意的一致性。
3. R F M T 值的标准化
对各属性进行规格化变换,规格化变换又称为极差正规比变换,它是从数据
矩阵中的每一个变量最大值和最小值,并用最大值减去最小值得出极差。然后用
每一个原始数据减去该变量中的最小值,再除以极差,即得到规格化数据,标准
化公式为:
最大值和最小值。由于 F M T 指标的影响是正向的,所以适用公式(7 ),而
R 得指标影响是反向的,适用公式(8 )。
4. 计算单个会员的价值得分
分别对 R F M,T 进行价值得分计算,再对四个指标的得分进行加权求和,得到每个会员的价值得分,公式如下:
5. 将会员分类,计算每一类会员的价值得分
计算出会员个人价值得分后,我们采用 K-means 聚类方法对会员群体进行聚
类分析,具体步骤如下所示[3]:
K-means 聚类算法从一个初始的 K 类别划分开始,然后将各数据点指派到各
个类别中,以减小总的距离平方和。因为 K-means 聚类算法中总的距离平方和随
着类别个数 K 的增加而趋向于减小(当 K=n 时, J(C)=0 )。因此 , 总的距离平方
和只能在某个确定的类别个数 K , 取得最小值。

4.3.3 模型的求解与结果分析

1. 层次分析法计算权重系数
(2) 对权重系数是否符合逻辑进行检验
我们采用一致性指标 CI 检验该项目的相对优先顺序有无逻辑混乱,一般认
为当 CI<0.01 时,可能导致逻辑混乱,计算所得的各项权重不可以接受;反之则
认为各权重可以接受。
根据公式(3)(4)(5)可计算得到各特征根为:

由此可认为第一层子目标各项判断无逻辑错误,即 

3. 计算单个会员的价值得分
在此部分,我们利用公式 (9) 分别对 R F M T 指标进行会员价值得分计
算,再对四个指标的得分进行加权求和,得到每个会员的价值得分。
在计算四个指标的得分时,我们设定每个指标满分为 5 分,四个指标剔除分
布上下 10% 的区间,即截取中间的 80% 再进行分级(核算最优区间),四个指
标打分的 1-5 级均按照 0%-20% 20%-40% 40%-60% 60%-80%,80%-100%
行分级,其中 M 因为存在退货情况,数据存在负数,我们将 M 为负数的会员的
M 指标得分设置为 0,结果如下表所示:
4. 将会员分类,计算每一类会员的价值得分
计算出会员个人价值得分进而对会员进行分级,但这种个人角度的分级只是
确定了会员的等级,却没有各类会员之间的一个量化的价值比较,因而对各类会
员做相应的价值分析是非常有必要的。
细分会员群不仅揭示了会员在级别上的差异,而且反映了会员在行为上的特
性和变化倾向。针对不同等级的会员,采取不同的管理策略。因此我们采用
K-means 聚类法对会员群体进行聚类分析。聚类结果如表 8 所示:
进行会员分类后,我们再对会员的类别进行会员细分群的价值得分进行排
序,使得商场能够量化各类会员的价值的差别,有助于企业制定更为可行的会员
政策。
由于受到成本的制约,商场不可能提供完全的、无差别的个性化服务,按照
总得分的排列情况,我们认为商场应该优先将资源投放到总得分较高的会员细分
群体上。

4.4 问题三的模型建立与求解

4.4.1 建模思路

商场会员从入会到退出的过程称为会员的生命周期,在整个生命周期内会员
的状态会随着会员的消费行为改变而改变,这个动态的过程对于商场对会员的管
理造成了困扰,因此我们需要建立一个模型以判别会员处于生命周期内的状态。
对于问题三,基于问题二中的 RFMT 模型,选取 R (会员最近一次购买商
品的时间间隔天数)和 F (会员在限定时间内购买商品的频率)指标作为聚类依
据,应用 K-means 聚类法对有消费记录的会员进行状态聚类,最终可知每个会员
所处的生命周期状态。

4.4.2 模型建立

为了更有效地对商场会员进行维系以及管理,该模型用于判别会员处于生命
周期内的状态。通常情况下,会员的生命周期状态分为活跃会员、沉默会员、流
失会员等。
考虑到会员的消费行为对状态的影响,在问题二的 RFMT 模型的基础上,
运用 Clementine 软件对会员的 R F M T 四个指标数据进行 K-means 聚类 ,
取模型中的 R F 指标作为聚类依据,建立聚类模型对会员状态进行分类。
其中, R 表示会员最近一次购买商品的时间间隔天数, F 表示会员在限定时
间内购买商品的频率, M 表示会员在限定时间购买商品的总金额, T 表示单次购
买的最高金额。
K-means 聚类法的步骤与问题二中的聚类模型步骤相同,此处不再重复描
述。

4.4.3 模型的求解和结果分析

根据会员的 R F M T 指标数据,运用 Clementine 软件进行 K-means
类,建立聚类模型,选择聚类数为 3 类,一共迭代了 17 次,得到聚类结果如附
件 3,聚类规则如下:
R 指标和 F 指标的聚类中心来看,聚类 1 R 聚类中心为 982.932 F
类中心为 4.329 ,表示会员最近一次购买商品的时间距离数据截取时间的间隔天
数约为 983 天,购买商品的频率约为 4 次,可将此类会员划分为流失会员;聚类
2 R 聚类中心为 113.681 F 聚类中心为 16.458 ,表示会员最近一次购买商品
的时间距离数据截取时间的间隔天数约为 114 天,购买商品的频率约为 16 次,
即会员在最近三个月内有消费且消费次数约为 16 次,可将此类会员划分为活跃
会员;聚类 3 R 聚类中心为 447.715 F 聚类中心为 5.695 ,表示最近一次购买
商品的时间距离数据截取时间的间隔天数约为 447 天,购买商品的频率约为 6
次,即会员最后一次消费发生在最近的 4-6 个月内,已经沉默 3 个月以上,因此
可将此类会员划分为沉默会员。

4.5 问题四的模型建立与求解

4.5.1 建模思路

问题四中要求计算非活跃会员的激活率和确定激活率和商场促销活动之间
的关系模型。
从问题三的聚类结果中可筛选出非活跃状态的会员,给非活跃会员构建分析
指标: R F M T 指标,针对非活跃会员的 RFMT 指标进行因子分析,可得
到相应指标的因子得分,以每个公因子的方差贡献率作为权重系数,对每个因子
进行加权求和,从而计算得到各非活跃会员的激活率。
对于非活跃会员激活率和商场促销活动之间的关系模型,考虑到商场促销活
动与特价商品有关,结合非活跃会员的激活率和特价商品消费总金额在商品消费
总金额中的占比,利用 SAS 软件做相关性分析,得到激活率和商场促销活动之
间的关系模型。

4.5.2 模型建立

此问题主要建立因子分析模型,其基本思想为根据相关性大小将变量进行分
类,使得同一类的变量之间相关性较高,而不同类变量之间的相关性较低,每一
类变量代表一个公共因子。

 

 

的总和,通常用它来度量主因子的相对重要性。在求出主因子之后,如果各个主
因子的典型代表变量不是很显著,还需通过适当的方法进行因子旋转,以求出新
的具有较好解释能力的主因子。

4.5.3 模型的求解和结果分析

运用 SAS 软件对非活跃会员的 RFMT 指标进行因子分析,以每个公因子的
方差贡献率作为权重系数,对每个因子进行加权求和,得到因子综合得分,公式
如下:
根据上式,可知每个流失会员与沉默会员在生命周期中非活跃会员的激活率
如下表所示:
然后,我们建立多元线性回归分析模型来探索激活率和商场促销活动(会员
在商品促销活动中花费的金额占总花费金额的比例)之间的关系。
假设 Y 与 X 之间满足线性回归关系
比较 (36) 式和 (37) 式,可以看出在两个会员群体中激活率和商场促销活动均
呈正比例关系,即商场促销活动对会员生命周期的激活率皆起着促进的作用,且
其对沉默会员的促进效果优于其对流失会员的促进效果。

4.6 问题五的模型建立与求解

4.6.1 建模思路

 

连带消费是商场经营的核心,例如经典的 尿布与啤酒 的故事。连带消费是
商品与商品之间具有的某种特定的关系导致的,根据会员的消费情况,对购买的
商品进行关联规则挖掘;同时筛选出会员消费记录中的购买数量前十的商品作为
会员的喜爱商品,结合商品之间的关联规则,开展促销活动。

4.6.2 模型建立

问题五中主要的工作为对会员购买的商品进行关联规则挖掘。
关联规则挖掘过程主要包含两个阶段 : 第一阶段必须先从会员消费数据集中
找出所有的高频商品,第二阶段再由这些高频商品中产生关联规则。
关联规则挖掘的第一阶段必须从会员消费记录中,找出所有高频商品。高
频的意思是指某一商品出现的频率相对于所有记录而言,必须达到某一水平。一
商品出现的频率称为支持度,以一个包含 A B 两个商品的 2-itemset 为例,我
们可以经由公式 1 求得包含 {A,B} 商品的支持度,若支持度大于等于所设定的最
小支持度门槛值时,则 {A,B} 称为高频商品。一个满足最小支持度的 k-itemset
则称为高频 k- 商品,一般表示为 Large k Frequent k 。算法并从 Large k 的项目
组中再产生 Large k+1 ,直到无法再找到更长的高频项目组为止。
关联规则挖掘的第二阶段是要产生关联规则。从高频商品产生关联规则,
是利用前一步骤的高频 k- 商品来产生规则,在最小信赖度的条件门槛下,若一规
则所求得的信赖度满足最小信赖度,称此规则为关联规则。例如 : 经由高频 k-
{A,B} 所产生的规则 AB ,其信赖度可经由公式 2 求得,若信赖度大于等于最
小信赖度,则称 AB 为关联规则。

4.6.3 模型的求解和结果分析

经统计,在会员消费记录中购买数量排名前十的商品为:
针对会员消费情况,使用 Clementine 软件对会员购买的商品进行关联规则挖
掘,得到表 11 中的商品对应的关联商品,关联规则如下表所示:

 

通过关联规则挖掘,可以看到会员购买量前十的商品及其关联商品如上表所
示。若商场要开展促销活动,可根据以上关联规则进行适当搭配销售,通过调整
柜台等方式将相关商品以就近原则摆放,通过连带消费对相关联的商品进行销
售。

五、模型的评价与推广

5.1 模型的评价

5.1.1 模型的优点

1 .所建立的模型公众认可度高,模型严谨,考虑的维度和因素较为全面;
2 .模型的计算采用专业软件求解,例如 SQL Server 软件、 Clementine 软件、
EXCEL 软件等对数据进行处理和模型求解,用于分析的数据可信度较高;
3 .建立的模型能够与实际紧密联系,结合实际情况对问题进行求解,使得
模型具有很好的通用性和推广性。

5.1.2 模型的缺点

1 RFMT 模型的指标间存在一定的相关性,模型中的四个指标 R F M
T 相关性较大,在价值衡量模型中出现相关性较大的指标,这样模型会显得较为
冗余。
2 RFMT 模型具有局限性, RFMT 是衡量会员的价值的代表性指标,仅从 4
个指标角度描述的主要是会员消费行为特征,但是这些指标还不能涵盖会员绝大
多数的行为特征。
3 .本文用指标 R (最近一次消费的时间间隔)来描述会员对商场的关注程
度,但是更好的标准应该是会员对商场的访问频率,它可以更好地判断一个会员
对商场商品的需求程度,访问越频繁代表越有需求,但是现有数据并不支持我们
用会员的访问频率来进行分析。

5.1.3 模型的改进

 

1 .对于 RFMT 模型冗余的问题,在后期可以对 RFMT 模型进行精简,主要
针对 F (消费频率)和 M (消费总金额)指标来进行分析。
2 .在可获取数据的前提下,深入研究有哪些因素可以作为衡量会员价值的
指标因素。后期可以做模型扩展,将会员的其他特征指标加进来,比如所在区域、
工作职务、收入等个人信息,建立一个更加全面和准确的会员价值评价体系。

5.2 模型的推广

在大型百货商场的背景下,本文建立了完整的会员画像刻画模型,对商场会
员的消费行为进行特征分析,衡量会员对于商场的价值,根据会员生命周期状态
对会员的状态进行划分,使商场能够更有效地对会员进行精细化管理以及及时制
定营销策略来发展和维系会员,从而达到增益的目的。
本文建立的 RFMT 模型能够广泛应用于用户价值分析中,对于现实生活中
的百货商场会员分析也有着一定的参考和现实意义,并且可以将模型推广到 APP
运营、通信行业用户分析等研究中。

六、参考文献

 

代码实现

源程序 1 

 

use Contest; ---------------------------创建总表----------------------------- select sd.djh,sd.spbm,sd.sj,sd.sl,sd.je,sd.dtime,sd.syjh,vsd.kh as
vsd_kh,vsd.spmc,vsd.jf,vsd.gzbm,vsd.gzmc,vi.kh as vi_kh,vi.csny as vi_csny,vi.xb as vi_xb,vi.djsj as
vi_disj
into total
from sale_detail sd
left join vip_sale_detail vsd
on (sd.djh=vsd.djh and sd.dtime=vsd.dtime and sd.je=vsd.je and sd.sj=vsd.sj and sd.sl=vsd.sl and
sd.spbm=vsd.spbm and sd.syjh=vsd.syjh)
left join vip_information vi on vsd.kh=vi.kh
;---------------------创建该商场会员消费明细表------------------- select * into mall_vip_sale_detail
from total
where vsd_kh is not null and vi_kh is not null
;--------------------创建该商场非会员消费明细表------------------- select * into mall_notvip_sale_detail
from total
where vsd_kh is null and vi_kh is null
;--------------------创建以会员消费时间为主的,该商场会员消费明细表------------------- select
vsd.kh,vsd.dtime,vsd.spbm,vsd.sl,vsd.sj,vsd.je,vsd.spmc,vsd.jf,vsd.syjh,vsd.djh,vsd.gzbm,vsd.gzmc,vi. kh as vi_kh,vi.csny,vi.xb ,vi.djsj
into vtime_mall_vip_sale_detail
from vip_sale_detail vsd,vip_information vi
where vsd.kh=vi.kh
----------------------------第一问----------------------------------------
--------------------------购买力维度-------------------------------------- select vi_kh as 会员卡号,count(vi_kh) as 会员消费宗数,SUM(je) as 会员消费总金额,SUM(sl) as
会员购买数量
from vtime_mall_vip_sale_detail --会员
group by vi_kh;
--------------------------时间偏好维度--------------------------------------
--创建截取时间的临时表
if object_id('tempdb..#cut_time') is not null
Begin
drop table #cut_time
End
select CONVERT(char(10),dtime,120) as cut_time,* into #cut_time
from vtime_mall_vip_sale_detail tmvsd
;--2015 冬
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2015-01-01' and '2015-02-28'; --2015 春
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2015-03-01' and '2015-05-31'; --2015 夏
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2015-06-01' and '2015-08-31'; --2015 秋
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2015-09-01' and '2015-11-30'; --2016 冬
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2015-12-01' and '2016-02-29'; --2016 春
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2016-03-01' and '2016-05-31'; --2016 夏
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2016-06-01' and '2016-08-31'; --2016 秋
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2016-09-01' and '2016-11-30'; --2017 冬
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2016-12-01' and '2017-02-28'; --2017 春
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2017-03-01' and '2017-05-31'; --2017 夏
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2017-06-01' and '2017-08-31'; --2017 秋
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2017-09-01' and '2017-11-30'; --2018 冬
select COUNT(distinct vi_kh) as 人数,COUNT(vi_kh) as 次数
from #cut_time ct
where ct.cut_time between '2017-12-01' and '2018-02-28'; ----------------------特价商品消费占比---------------------------- select SUM(je) as 商品消费总金额 from vtime_mall_vip_sale_detail;
select SUM(je) as 特价商品消费总金额
from vtime_mall_vip_sale_detail vmvsd
left join product_information pdi on vmvsd.spbm=pdi.spbm
where pdi.splm like '%特%' or pdi.splm like '%折%' or pdi.splm like '%促%' ---------------------高价商品消费占比-----------------------------
--售价为以上为高价商品
select SUM(je) as 高价商品消费总金额
from vtime_mall_vip_sale_detail vmvsd
where sj>=5000
--------------------该商场会员与非会员的消费差异----------------------------------
--------------------------购买力维度--------------------------------------
--创建该商场每日非会员消费金额临时表
if object_id('tempdb..#notvip_total_je') is not null
Begin
drop table #notvip_total_je
End
select CONVERT(char(10),dtime,120) as date,SUM(je) as 非会员消费总金额 into #notvip_total_je
from total t
where
vsd_kh is null and t.vi_kh is null --限定非会员
group by CONVERT(char(10),dtime,120)
order by 1
;--创建该商场会员消费金额临时表
if object_id('tempdb..#vip_total_je') is not null
Begin
drop table #vip_total_je
End
select CONVERT(char(10),t.dtime,120) as 日期,SUM(je) as 会员消费总金额 into #vip_total_je
from total t
where
t.vsd_kh is not null and t.vi_kh is not null --限定会员
group by CONVERT(char(10),dtime,120)
order by 1
;--提取该商场会员、非会员消费总金额
select * from #notvip_total_je a left join #vip_total_je b on a.date=b.日期; --提取会员、非会员消费总金额
select SUM(je) as 会员消费总金额 from mall_vip_sale_detail; --会员
select SUM(je) as 非会员消费总金额 from mall_notvip_sale_detail; --非会员
--会员、非会员的总购买数量
select SUM(sl) as 会员总购买数量 from mall_vip_sale_detail; --会员
select SUM(sl) as 非会员总购买数量 from mall_notvip_sale_detail; --非会员
-----------------------------第二问-----------------------
-------------------------查询 RFM 模型中所需数据------------
---创建最后一次购买日期临时表
if object_id('tempdb..#last_date') is not null
Begin
drop table #last_date
End
;
select
vi_kh,MAX(dtime) as last_date into #last_date
from vtime_mall_vip_sale_detail
group by vi_kh
;--创建 RFMT 模型临时表
if object_id('tempdb..#RFMT') is not null
Begin
drop table #RFMT
End
;
select
distinct vmvsd.vi_kh as 会员卡号,
ld.last_date, datediff(day,last_date,'2018-1-15') as R, COUNT(vmvsd.vi_kh) as F, sum(je) as M, MAX(je) as T
into #RFMT
from vtime_mall_vip_sale_detail vmvsd,#last_date ld
where vmvsd.vi_kh=ld.vi_kh
group by vmvsd.vi_kh,last_date
;--提取没有消费记录的会员卡号
select vi.kh,vi.csny,vi.xb,vi.djsj
from vip_information vi
left join vtime_mall_vip_sale_detail vmvsd on vi.kh=vmvsd.vi_kh
where vmvsd.vi_kh is null -----------------------------第三问-----------------------------------
--创建 RFMT 模型临时表
if object_id('tempdb..#frofire') is not null
Begin
drop table #frofire
End
;
select vmvsd.kh,SUM(pdi.sj-pdi.hsjj) as 总利润 into #frofire
from vtime_mall_vip_sale_detail vmvsd
left join product_information pdi on vmvsd.spbm=pdi.spbm
group by vmvsd.kh
select * from #RFMT a left join #frofire b on a.会员卡号=b.kh
----------------------------第四问------------------------
--创建特价商品临时表
if object_id('tempdb..#vip_discount_product_je') is not null
Begin
drop table #vip_discount_product_je
End
;
select vmvsd.kh,SUM(je) as 特价商品消费总金额 into #vip_discount_product_je
from vtime_mall_vip_sale_detail vmvsd
left join product_information pdi on vmvsd.spbm=pdi.spbm
where pdi.splm like '%特%' or pdi.splm like '%折%' or pdi.splm like '%促%' group by vmvsd.kh
;--创建会员特价商品消费金额表
if object_id('tempdb..#vtotal_discount_product_je') is not null
Begin
drop table #vtotal_discount_product_je
End
;--查询会员消费总金额
select vmvsd.kh,SUM(je) as 会员消费总金额,ISNULL(vdpj.特价商品消费总金额,0) as 特价商品
消费总金额
into #vtotal_discount_product_je
from vtime_mall_vip_sale_detail vmvsd
left join #vip_discount_product_je vdpj on vmvsd.kh=vdpj.kh
group by vmvsd.kh,vdpj.特价商品消费总金额
;
select a.*,b.特价商品消费总金额,b.会员消费总金额
from #RFMT a left join #vtotal_discount_product_je b on a.会员卡号=b.kh
;
select jhl.*,vl.会员生命周期 from jihuolv jhl left join vip_life vl on jhl.会员卡号=vl.会员卡号
where vl.会员生命周期 <> '活跃会员' ;--------------------第五问---------------------------
--获取单据号
select distinct djh from vtime_mall_vip_sale_detail ; --获取商品编码
select distinct spbm from vtime_mall_vip_sale_detail ;
select djh,spbm from vtime_mall_vip_sale_detail;

 源程序 2

 

/*多元线性回归分析*/
proc reg data =liushi;
var jihuo_rate cuxiao_rate F R M T;
model jihuo_rate = cuxiao_rate F R M T;
run;
/*因子分析*/
proc factor data=A out=B Nfactor=3 method=prin priors=one
rotate=varimax simple p=0.8 score outstat=C;
var R F M T;
run;
proc score data=A
score=C
out=D;
var R F M T;
run;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/957052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

污水厂数字孪生 | 3D可视化管理系统助力污水企业数字化管理

随着城市化进程的不断加快&#xff0c;污水处理成为了城市环境保护的重要组成部分。传统的污水处理方式往往存在诸多问题&#xff0c;如信息不对称、安全隐患等。为了解决这些问题&#xff0c;污水处理3D可视化管控平台应运而生&#xff0c;它通过结合数字孪生技术和远程指导技…

详解Python argparse ---命令行选项、参数和子命解析器

详解argparse模块 一、 模块简介二、使用步骤三、ArgumentParser(&#xff09;参数四、add_argument&#xff08;&#xff09;参数详解五、示例 一、 模块简介 argparse模块使编写用户友好的命令行界面变得容易。该程序定义了它需要什么参数&#xff0c;argparse将找出如何从s…

使用C语言计算1/1-1/2+1/3-1/4+...+1/99-1/100

观察算式&#xff0c;发现分子都是1&#xff0c;分母从1~100&#xff0c;所以可以使用for循环产生1~100之间的数。 另一个问题是&#xff0c;如何产生正负交替的符号&#xff1f;很简单&#xff0c;这个符号本质上就是往每一项前面乘一个系数&#xff1a;一或者负一。所以只需…

纽扣电池/锂电池UN38.3安全检测报告

根据规章要求&#xff0c;航空公司和机场货物收运部门应对锂电池进行运输文件审查&#xff0c;重要的是每种型号的锂电池UN38.3安全检测报告。该报告可由的三方检测机构。如不能提供此项检测报告&#xff0c;将禁止锂电池进行航空运输. UN38.3包含产品&#xff1a;1、 锂电池2…

AI建模 | 物体三维重建的高效方法

三维重建是将客观世界中的物体在虚拟空间表达出来&#xff0c;在大众视野中&#xff0c;物品三维重建最直观的应用当属虚拟仿真和VR/AR导航。其实在学科专业领域&#xff0c;三维重建已经更早地应用在高精地图、测绘系统、城市规划等领域。 科技发展的终极方向应当是普适性&am…

dll修复精灵下载方法,完美解决电脑d3dx9-d3dx11dll文件丢失方法

大家好&#xff01;今天&#xff0c;我将为大家带来一场关于d3dx9_43.dll丢失的6种解决方法的演讲。希望通过这次演讲&#xff0c;能够帮助大家解决在电脑使用过程中遇到的问题&#xff0c;提高我们的生活和工作效率。 首先&#xff0c;让我们来了解一下d3dx9_43.dll是什么文件…

《QDebug 2023年8月》

一、Qt Widgets 问题交流 1.获取 QWidget 当前所在屏幕区域 本来以为 QWidget 的 screen() 接口返回的是组件自己所在屏幕的 QSreen&#xff0c;实测是所属 Window 所在的屏幕&#xff0c;如果 Window 跨屏了两者所属屏幕可能就不是同一个。 获取 QWidget 当前所在屏幕区域可…

jmeter单接口和多接口测试

最近接触到了多接口串联&#xff0c;接口串联的技术会在其他帖子有说明&#xff0c;其核心技术点就是通过正则表达式和变量来实现接口的关联。目前为止呢笔者用到的地方还只有一个&#xff0c;就是关于session保持的时候。但是看到很多资料都说测试过程中经常遇到b接口需要用a接…

IDA Pro反汇编工具下载安装使用

一、前言 IDA Pro&#xff08;Interactive Disassembler Professional&#xff09;简称“IDA”&#xff0c;是Hex-Rays公司出品的一款交互式反汇编工具&#xff0c;是目前最棒的一个静态反编译软件&#xff0c;为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器。ID…

R3LIVE项目实战(5) — R3LIVE数据采集与时间同步

目录 1 R3LIVE数据采集运行步骤 1.1 录制数据集 1.2 修改config下对应的配置文件 1.3 启动相机和雷达节点 1.4 运行R3LIVE与播包 2 R3LIVE在线运行 1 R3LIVE数据采集运行步骤 1.1 录制数据集 采集数据需要注意的一点是&#xff0c;不同传感器之间的时间同步问题&#x…

【C语言练习】C语言如何操作内存(重中之重!!!)

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

Android 之 GPS 初涉

本节引言&#xff1a; 说到GPS这个名词&#xff0c;相信大家都不陌生&#xff0c;GPS全球定位技术嘛&#xff0c;嗯&#xff0c;Android中定位的方式 一般有这四种&#xff1a;GPS定位&#xff0c;WIFI定准&#xff0c;基站定位&#xff0c;AGPS定位(基站GPS)&#xff1b; 本…

Linux的内存理解

建议 Mysql机器 尽量不要硬swap,如果是ssd磁盘还好。Free命令 free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存 输出简介: Mem 行(第二行)是内存的使用情况。Swap 行(第三行)是交换空间的使用情况。total 列显示系统总的可用物理内存和交换…

【高阶产品策略】策略产品数据与行为分析方法

文章目录 1、策略产品数据与用户行为数据分析概述2、埋点、策略数据收集核心技能3、用户行为数据分析应用4、数据平台实施 1、策略产品数据与用户行为数据分析概述 2、埋点、策略数据收集核心技能 3、用户行为数据分析应用 4、数据平台实施

亲测有效!Win7中如何安装高版本的NodeJS

正常情况下&#xff0c;Win7支持的Node.js最高版本是V13.14&#xff0c;但在开发过程中&#xff0c;有不少Vue项目或其他需要依赖Node环境的项目&#xff0c;对Node版本要求都比较高。对此&#xff0c;我们要么重装操作系统到Win8以上&#xff0c;要么就得想办法在Win7中安装高…

平衡二叉树AVLTree的实现与应用(难度5/10)

这是目前难度最高的一个作业&#xff0c;主要难点在于树的平衡&#xff0c;树的平衡依赖于调试输出的图形化&#xff0c;也就是输出二叉树的实现&#xff0c;二叉树的输出技巧性比较强&#xff0c;一般人很难直接想到控制台可以打印二叉树。后面的测试结果显示本文实现的AVLTre…

MYSQL 高级SQL语句

1、按关键字排序&#xff1a; order by 语句用来实现 &#xff0c;前面可以使用where字句使查询结果进一步过滤 asc 是按照升序排序 &#xff0c; 默认的 desc 是按照降序排序 order by的语法结构 例&#xff1a;select name,score from ku order by score desc; 表示将数…

飞书接入ChatGPT,实现智能化问答助手功能,提供高效的解答服务

文章目录 前言环境列表1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 在飞书中创建chatGPT机器人并且对话&#xff0c;在下面操作步骤中…

【源码分析】zeebe actor模型源码解读

zeebe actor 模型&#x1f64b;‍♂️ 如果有阅读过zeebe 源码的朋友一定能够经常看到actor.run() 之类的语法&#xff0c;那么这篇文章就围绕actor.run 方法&#xff0c;说说zeebe actor 的模型。 环境⛅ zeebe release-8.1.14 actor.run() 是怎么开始的&#x1f308; Lon…

APP出海推广前要做哪些事?

一个移动应用APP从开发完成到成功出海&#xff0c;中间要经历哪些过程&#xff1f;上架应用商店、数据对接、各渠道推广要做些什么&#xff1f; 1、上架应用市场 对于想要出海的APP开发商来说&#xff0c;谷歌应用商店Google Play和苹果应用商店Apple APP Store是主要的发行渠…