2018年国赛高教杯数学建模C题大型百货商场会员画像描绘解题全过程文档及程序

news2024/9/20 16:34:25

2018年国赛高教杯数学建模

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

原题再现

  在零售行业中,会员价值体现在持续不断地为零售运营商带来稳定的销售额和利润,同时也为零售运营商策略的制定提供数据支持。零售行业会采取各种不同方法来吸引更多的人成为会员,并且尽可能提高会员的忠诚度。当前电商的发展使商场会员不断流失,给零售运营商带来了严重损失。此时,运营商需要有针对性地实施营销策略来加强与会员的良好关系。比如,商家针对会员采取一系列的促销活动,以此来维系会员的忠诚度。有人认为对老会员的维系成本太高,事实上,发展新会员的资金投入远比采取一定措施来维系现有会员要高。完善会员画像描绘,加强对现有会员的精细化管理,定期向其推送产品和服务,与会员建立稳定的关系是实体零售行业得以更好发展的有效途径。
  附件中的数据给出了某大型百货商场会员的相关信息:附件1是会员信息数据;附件2是近几年的销售流水表;附件3是会员消费明细表;附件4是商品信息表,一般来说,商品价格越高,盈利越高;附件5是数据字典。请建立数学模型解决以下问题:
  (1) 分析该商场会员的消费特征,比较会员与非会员群体的差异,并说明会员群体给商场带来的价值。
  (2) 针对会员的消费情况建立能够刻画每一位会员购买力的数学模型,以便能够对每个会员的价值进行识别。
  (3) 作为零售行业的重要资源,会员具有生命周期(会员从入会到退出的整个过程),会员的状态(比如活跃和非活跃)也会发生变化。试在某个时间窗口,建立会员生命周期和状态划分的数学模型,使商场管理者能够更有效地对会员进行管理。
  (4) 建立数学模型计算会员生命周期中非活跃会员的激活率,即从非活跃会员转化为活跃会员的可能性,并从实际销售数据出发,确定激活率和商场促销活动之间的关系模型。
  (5) 连带消费是购物中心经营的核心,如果商家将策划某次促销活动,如何根据会员的喜好和商品的连带率来策划此次促销活动?

整体求解过程概述(摘要)

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

模型假设:

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

问题分析:

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

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

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

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

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

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:(代码和文档not free)

clc,clear,format rat
 a=xlsread('C:\Users\yang\Desktop\C 题\活跃状态矩阵.xlsx');
 [r,c]=size(a);
 a=a';a=a(:)'; %把矩阵a逐行展开成一个行向量
for i=1:2
 for j=1:2
 f(i,j)=length(findstr([i,j],a)); %统计子字符串'ij'的个数
end
 end
 ni=sum(f,2); %计算矩阵f的行和
phat=f./repmat(ni,1,size(f,2)); %求状态转移的频率
format %恢复到短小数的显示格式
import fp_growth_py3 as fpg
 import pandas as pd
 import datetime
 itemName='商品名称'
 start=datetime.datetime.now()
 data=pd.read_excel('C:/Users/yang/Desktop/C 题/fpgrowth 建模数
据.xlsx')
 dataSet,itemSet=[],[]
 itemSet.append(data[itemName][0])
 for i in range(1,len(data)):
 if data['会员消费编码'][i]==data['会员消费编码'][i-1]:
 itemSet.append(data[itemName][i])
 if i==len(data)-1:
 dataSet.append(itemSet)
 else:
 dataSet.append(itemSet)
 itemSet=[]
 itemSet.append(data[itemName][i])
 if i==len(data)-1:
 dataSet.append(itemSet)
 end=datetime.datetime.now()
 readDataTs=(end-start).seconds
 if __name__ == '__main__':
 start=datetime.datetime.now()
 '''
调用find_frequent_itemsets()生成频繁项
@:param minimum_support 表示设置的最小支持度,即若支持度大于等于
inimum_support,保存此频繁项,否则删除
@:param include_support 表 示 返 回 结 果 是 否 包 含 支 持 度 , 若
include_support=True,返回结果中包含 itemset 和 support,否则只返回
itemset
 '''
 frequent_itemsets
 =
 fpg.find_frequent_itemsets(dataSet,
 minimum_support=49, include_support=True)
 #
 print(type(frequent_itemsets)) # print type
 result,itemNum=[],[]
 for itemset, support in frequent_itemsets:list
 result.append((itemset, support))
 itemNum.append(len(itemset))
 # 将generator 结果存
result = sorted(result, key=lambda i: i[0]) # 排序后输出
itemNum=pd.Series(itemNum)
 itemNumMax=itemNum.max()
 result2=[]
 for i in range(itemNumMax):#
 result2.append([])
 for itemset, support in result:
 result2[len(itemset)-1].append((itemset, support))
 result3=[]
 for i in range(1,itemNumMax):
 for j in range(len(result2[i])):
 for k in range(i+1):
 y=result2[i][j][0][k]
 x=''
 xx=[]
 n=0
 for item in result2[i][j][0]:
 if item!=y:
 xx.append(item)
 x+=item+','
 n+=1
 x=x[:-1]
 for t in range(len(result2[i-1])):
 if xx==result2[i-1][t][0]:
 confidence=result2[i][j][1]/result2[i-1][t][1]
 supportCountX=result2[i-1][t][1]
 supportCountY=result2[i][j][1]
 supportX=result2[i-1][t][1]/len(dataSet)
 supportY=result2[i][j][1]/len(dataSet)
 result3.append((x,y,n,supportCountX,supportCountY,supportX,supportY,c
 onfidence))
 break
 result3=pd.DataFrame(list(result3))
 result3.columns = ['X','Y','X 商品个数
','supportCountX','supportCountY','supportX','supportY','confidence']
 result3.to_excel('C:/Users/yang/Desktop/fpgrowthResult.xlsx')
 end=datetime.datetime.now()
 calTs=(end-start).seconds
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

如何搭无人直播?这2种方式靠谱!

如何搭无人直播?这2种方式靠谱! 这几个步骤可以搭建一个合规的无人直播间,大家用心看哦#无人直播#直播带货#直播违规 家人们今天带大家来看一下直播,带货还能这两波,我们只需要一台手机,再加上一个软件&a…

(11)(2.1.2) DShot ESCs(二)

文章目录 前言 3 配置伺服功能 4 检查RC横幅 5 参数说明 前言 DShot 是一种数字 ESC 协议,它允许快速、高分辨率的数字通信,可以改善飞行器控制,这在多旋翼和 quadplane 应用中特别有用。 3 配置伺服功能 如上所述,如果使用…

面试复盘与 AI 大模型学习

面试相关 一、面试公司与岗位信息 面试公司:顺丰科技面试岗位:AI 方向产品经理工作地点:深圳面试结果:通过,但放弃了该 offer 二、面试过程 整体情况 整个暑期实习面试之旅包含三轮,其中两轮是专业面试…

基于单片机的自动门控制系统

本设计基于单片机的自动门控制系统。该系统以单片机STM32F103C8T6为核心,配备了多种硬件设备,包括DHT11温湿度传感器、HC-SR505人体感应模块、红外对管、OLED显示器和步进电机等。系统提供自动和手动两种工作模式。在自动模式下,系统能够感应…

uniapp中使用picker-view选择时间

picker-view 是 UniApp 中用于展示和选择数据的组件。它适用于创建多列选择器&#xff0c;类似于 iOS 和 Android 系统中的选择器视图。以下是 picker-view 的详细介绍&#xff0c;包括用法、属性和事件。 一 用法 <template><view><picker-view :value"…

计算机组成原理(笔记3)

IEEE754浮点数标准 这里只讲32位单精度 S——尾数符号&#xff0c;0正1负&#xff1b; M——尾数, 纯小数表示, 小数点放在尾数域的最前面。 一般采用原码或补码表示。 E——阶码&#xff0c;采用“移码”表示; 阶符采用隐含方式&#xff0c;即采用“移码”方法来表示正负指数…

杭州电子科技大学《2020年+2021年861自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自联盟自动化考研联盟企业店( /闲 店)的&#xff1a;《25届杭州电子科技大学861自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2020年真题 2021年真题 Part1&#xff1a;20202021年完整…

大舍传媒:尼日利亚传统新闻媒体宣传助力新兴行业蓬勃发展

大舍传媒&#xff1a;尼日利亚传统新闻媒体宣传助力新兴行业蓬勃发展 在全球化的浪潮下&#xff0c;媒体作为信息传播的重要渠道&#xff0c;对于促进行业发展和推动社会进步扮演着举足轻重的角色。特别是在非洲大陆上人口最多、经济最发达的国家——尼日利亚&#xff0c;传统…

AI 大模型开发 —— 面对转行挑战与机遇,探索有效学习开启职业转型

前言 转行从事 AI 大模型开发是否困难&#xff1f;怎样学习才能顺利找到相关工作&#xff1f;这大概是所有新人都会面临的问题。基于此&#xff0c;我结合自身经历&#xff0c;进行了一些总结并整理出学习方法&#xff0c;期望能给大家提供一定的帮助。 1. AI 大模型开发基础…

Python办公自动化案例(四):将Excel数据批量保存到Word表格中

案例:将excel数据批量保存到Word表格中 要将Excel数据批量保存到Word表格中,可以使用Python的openpyxl库来读取Excel文件,以及python-docx库来创建和编辑Word文档。以下是一段示例代码,以及代码解释和一些注意事项。 准备好的Excel数据: 1.安装所需库 首先,确保你已经…

线程池的执行流程总结

1、提交一个线程任务&#xff0c;首先判断线程池中是否存在空闲线程&#xff1b; 存在空闲线程&#xff0c;则直接分配一个空闲线程&#xff0c;用于执行线程任务。 不存在空闲线程&#xff0c;则线程池会判断当前“存活的线程数”是否超出核心线程数&#xff08;corePoolSize&…

【我的 PWN 学习手札】Tcache dup

前言 Tcache dup&#xff0c;实际上是 tcache 的 double free&#xff0c;能达到 UAF 的效果&#xff0c;实现 Tcache poisoning。 一、Tcache dup 早期 tcache 没有检查 double free&#xff0c;也没有对 counts 做检查。 对同一个大小落在 Tcachebin 的 chunk 进行 doubl…

内存管理(c++)

欢迎来到本期节目- - 内存区域 c/c中程序内存区域划分&#xff1a; 你知道它在内存的哪个区域吗&#xff1f; int global_var 1;static int static_global_var 1;void test1() {static int static_part_var 1; }这里的全局变量&#xff0c;静态全局变量&#xff0c;静态…

HTML讲解(二)head部分

目录 1. 2.的使用 2.1 charset 2.2 name 2.2.1 describe关键字 2.2.2 keywords关键字 2.2.3 author关键字 2.2.4 http-equiv 小心&#xff01;VS2022不可直接接触&#xff0c;否则&#xff01;没这个必要&#xff0c;方源面色淡然一把抓住&#xff01;顷刻炼化&#x…

spring springboot 日志框架

一、常见的日志框架 JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j.... 注意&#xff1a;SLF4j 类似于接口 Log4j &#xff0c;Logback 都是出自同一作者之手 JUL 为apache 公司产品 Spring&#xff08;commons-logging&#xff09;、Hibernate&#xff08;jboss…

实力再证|海云安连续三年荣登中国网络安全产业联盟(CCIA)榜单,蝉联两届“中国网安产业成长之星”

9月6日&#xff0c;中国网络安全产业联盟&#xff08;CCIA&#xff09;正式公布了2024年中国网安产业竞争力50强、成长之星、潜力之星榜单&#xff0c;据悉&#xff0c;本次榜单调研共历时数月&#xff0c;从多个维度对调研企业进行了全面评估分析&#xff0c;遴选出2024年中国…

Thingsboard规则链:GPS Geofencing Filter节点详解

引言 GPS Geofencing Filter节点具体作用 使用教程 源码浅析 应用场景与案例 物流与运输 农业智能化 城市安全管理 结语 http://ThingsBoard从入门到实战课程&#xff0c;深入透析底层原理&#xff0c;快速搭建自己的IOT平台_哔哩哔哩_bilibili 引言 在物联网技术迅速发…

Linux文件IO(一)-open使用详解

在 Linux 系统中要操作一个文件&#xff0c;需要先打开该文件&#xff0c;得到文件描述符&#xff0c;然后再对文件进行相应的读写操作&#xff08;或其他操作&#xff09;&#xff0c;最后在关闭该文件&#xff1b;open 函数用于打开文件&#xff0c;当然除了打开已经存在的文…

2023年全国研究生数学建模竞赛华为杯C题大规模创新类竞赛评审方案研究求解全过程文档及程序

2023年全国研究生数学建模竞赛华为杯 C题 大规模创新类竞赛评审方案研究 原题再现&#xff1a; 现在创新类竞赛很多&#xff0c;其中规模较大的竞赛&#xff0c;一般采用两阶段&#xff08;网评、现场评审&#xff09;或三阶段&#xff08;网评、现场评审和答辩&#xff09;评…

C#和数据库高级:抽象类和抽象方法

文章目录 一、为什么使用抽象类和抽象方法&#xff1f;1.1、父类与子类的相互转换 二、抽象类和抽象方法2.1、抽象类的定义和方法声明规范2.2、使用继承多态的机制解决问题 三、抽象类的概念和使用特点总结 一、为什么使用抽象类和抽象方法&#xff1f; 1.1、父类与子类的相互…