百货商场用户画像描绘and价值分析(下)

目录

  • 内容概述
  • 数据说明
  • 技术点
  • 主要内容
    • 4 会员用户画像和特征字段创造
      • 4.1 构建会员用户基本特征标签
      • 4.2 会员用户词云分析
    • 5 会员用户细分和营销方案制定
      • 5.1 会员用户的聚类分析及可视化
      • 5.2 对会员用户进行精细划分并分析不同群体带来的价值差异

内容概述

本项目内容主要是基于Python的“百货商场用户画像描述与价值分析”,里面有详细的数据预处理、数据可视化和数据建模等步骤。同时,针对传统RFM模型进行了改进,构造了LRFMP模型来分析客户价值,挖掘客户价值的八个字段,并通过WordCloud形式展现了出来,可以对会员用户进行精准画像。

数据说明

数据集分为两部分,.xlsx结尾的是会员信息表,.csv结尾的是销售流水表。其中,会员信息表共有将近19万条记录,销售流水表共有接近189万条记录。

两个表包含了如会员卡号,消费产生时间,性别,出生时间,商品编码,销售数量,商品售价,消费金额,商品名称,此次消费的会员积分,收银机号,单据号,柜组编码,柜组名称,等级时间等 15 个特征。

  • L(入会程度):3个月以下为新用户,4-12个月为中等用户,13个月以上为老用户
  • R(最近购买的时间)
  • F(消费频次):次数20次以上的为高频消费,6-19次为中频消费,5次以下为低频消费
  • M(消费金额):10万以上为高等消费,1万-10万为中等消费,1万以下为低等消费
  • P(消费积分):10万以上为高等积分用户,1万-10万为中等积分用户,1万以下为低等积分用户

技术点

  • 数据预处理:包括去重去缺失值、异常值处理、变量重编码和时间序列数据处理方式等;
  • 数据可视化:饼图、柱状图、折线图、雷达图和复合图等绘制方式等;
  • 特征创造和数据建模:从海量连续数据中创造出性别、消费偏好、入会程度、最近购买的时间、消费频次、消费金额、消费积分等类别数据,建模部分主要通过标准化和归一化数据来对比KMeans聚类的轮廓系数结果。

主要内容

4 会员用户画像和特征字段创造

4.1 构建会员用户基本特征标签

说明积分这一列没有存在异常值
在这里插入图片描述

在这里插入图片描述

查看登记时间和消费产生的时间是否存在异常值,即大于2018-01-03
在这里插入图片描述

筛掉两列异常时间的数据

在这里插入图片描述

说明单个会员有多条消费记录数
在这里插入图片描述

可以先筛选每位会员,然后依据各个字段对进行运算,求出对应的LRFMP

自定义一个函数来实现两列数据时间相减

在这里插入图片描述

开始登记的时间 和 最后一次消费的时间
在这里插入图片描述

调用函数
在这里插入图片描述

会员消费的总次数:
会员消费的总金额:
会员的积分总数:
在这里插入图片描述

创造一列特征字段“消费时间偏好”(凌晨、上午、中午、下午、晚上)

在这里插入图片描述

会员消费的时间偏好,在多项记录中取众数
在这里插入图片描述

会员性别
在这里插入图片描述

开始构建对应的特征标签

在这里插入图片描述

在这里插入图片描述

构建会员用户业务特征标签

取DataFrame之后转置取values得到一个列表,再绘制对应的词云,可以自定义一个绘制词云的函数,输入参数为df和会员卡号

在这里插入图片描述

在这里插入图片描述

查看数据的基本特征

在这里插入图片描述

描述性统计
在这里插入图片描述

开始对数据进行分组

在这里插入图片描述

保存数据

在这里插入图片描述

4.2 会员用户词云分析

开始绘制用户词云,封装成一个函数来直接显示词云

在这里插入图片描述

随机查找一个会员来绘制用户画像
在这里插入图片描述

在这里插入图片描述

5 会员用户细分和营销方案制定

5.1 会员用户的聚类分析及可视化

先对数据进行标准化处理
在这里插入图片描述

对数据进行聚类
在这里插入图片描述

在这里插入图片描述

构造一个绘制聚类可视化效果雷达图的函数

在这里插入图片描述

在这里插入图片描述

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

从上面可以看出,标准化后的数据聚类效果相较于归一化的更好,且从轮廓系数和聚类雷达图也可以看出,聚类数最佳为2。因此,下面我们使用聚类数为2的标准化数据进行聚类,得到两类客户的LRFMP均值数据,以此来判断两者之间的差异

5.2 对会员用户进行精细划分并分析不同群体带来的价值差异

以聚类数为2贴上对应的标签
在这里插入图片描述

统计一下两类用户之间的差异,发现两类客户之间数量相差过大
在这里插入图片描述

用均值来计算两类样本之间的LRFMP

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

从上面可以看出,标签为1的客户消费频次、消费金额和消费积分均远大于标签为0的客户,且这类客户所占的比例仅有2.3%,可以将其定义为“重要保持会员”。标签为0的客户所占比例为97.7%,其会员登记时间跟标签为1的比较接近,但最近一次消费时间较标签1的还要长,可以将其定义为“一般发展会员”


更多详细内容可看
在这里插入图片描述

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

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

相关文章

uniapp开发路由跳转

目录 底部导航栏 内置api跳转 uni.navigateTo uni.redirectTo uni.reLaunch uni.switchTab 使用页面链接 底部导航栏 pages.json "tabBar": {"color": "#f5deb3","selectedColor": "#f0e68c","borderStyle&qu…

C语言概述详解

1.什么是C语言? C语言是计算机编程语言的一种,主要用于人与机器交流,对于嵌入式工程师来说,C语言是必不可少的一门语言。 2.C语言的特点? C语言具有简洁、高效、可移植、模块化、标准化的特点。但对于C语言的简洁和高效…

数据结构-栈超详解

栈 一种先进后出的数据结构。 复杂度单次通常为 O ( 1 ) O(1) O(1) 用途:括号匹配,倒序问题等 例子: 序列A:{1,2,3,4,5}依次入栈再同一出栈,顺序为A’:{5,4,3,2,1} 代码: 插入: void insert(int x…

手写call,apply,bind,new

三种情况都是改变this的指向,不同的是bind返回的是一个函数 //call let foo {value: 1 };Function.prototype.call2 function (context) {const context2 context || window//this指的是要改变this函数context2.fn thisconst args [...arguments].slice(1)//调…

Springboot+Vue项目-基于Java+MySQL的免税商品优选购物商城系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

【LeetCode热题100】【贪心算法】跳跃游戏

题目链接:55. 跳跃游戏 - 力扣(LeetCode) 数组的元素表示可以跳的最大长度,要判断能不能跳到最后 不断更新可以跳到的最远距离,如果当前的位置大于可跳最远距离,说明不行 class Solution { public:bool …

【Qt】常用控件(LCD Number/进度条/日历)

需要云服务器等云产品来学习Linux可以移步/-->腾讯云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、LCD Number(LCD显示器) 一个倒计时程序 二、ProgressBar(进度条) 1、创建一个进度条&#xff0c;100ms进度增加…

Android Binder——C++层注册服务实例(十二)

前面几篇内容都介绍了 C++ 中新增服务的调用流程,这里我们看一个 Android 源码中的实例进一步熟悉 C++ 服务的添加流程,这里以 MediaPlayerService 为例。 一、添加服务调用 1、main_mediaserver.cpp 源码位置:/frameworks/av/media/mediaserver/main_mediaserver.cpp i…

每天学习一个Linux命令之git

每天学习一个Linux命令之git Git是一个分布式版本控制系统&#xff0c;被广泛用于开发软件项目。它提供了许多强大的命令和选项&#xff0c;使开发人员可以更好地管理和跟踪代码的变化。在本篇博客中&#xff0c;我们将详细介绍一些常用的git命令及其选项。 git init git in…

✌粤嵌—2024/3/14—判断子序列

代码实现&#xff1a; 方法一&#xff1a;一次遍历 bool isSubsequence(char *s, char *t) {if (strlen(s) 0) {return true;}int i 0;for (int j 0; j < strlen(t); j) {if (s[i] t[j]) {i;}if (i strlen(s)) {return true;}}return false; } 方法二&#xff1a;动态规…

5.2 mybatis之autoMappingBehavior作用

文章目录 1. NONE关闭自动映射2. PARTIAL非嵌套结果映射3. FULL全自动映射 众所周知mybatis中标签< resultMap >是用来处理数据库库字段与java对象属性映射的。通常java对象属性&#xff08;驼峰格式&#xff09;与数据库表字段&#xff08;下划线形式&#xff09;是一 一…

基于SSM项目个人健康信息管理系统

采用技术 基于SSM项目个人健康信息管理系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringMVCMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 用户端 用户首页 健康知识 用户注册 医院推荐信息 系统概要…

【LeetCode热题100】【矩阵】螺旋矩阵

题目链接&#xff1a;54. 螺旋矩阵 - 力扣&#xff08;LeetCode&#xff09; 先走外面的圈再走里面的圈&#xff0c;可以用递归来解决&#xff0c;对于要走的一个圈&#xff0c;由四个角决定&#xff0c;其实是三个数&#xff0c;&#xff08;0&#xff0c;0&#xff09;&…

VUE相关知识锦集

一、生命周期的使用场景 created ----- 单组件请求 mounted----- 同步可以获取dom,如果先子组件请求后父组件请求 activated-----判断id是否相等&#xff0c;如果不相同发起请求 destory-----关闭页面记录视频播放时间&#xff0c;初始化的时候从上一次的历史开始播放 补充…

Vue.js前端开发零基础教学(五)

目录 4.1 动态组件 4.1.1 定义动态组件 4.1.2 利用KeepAlive组件实现组件缓存 4.1.3 组件缓存相关的生命周期函数 4.1.4 KeepAlive组件的常用属性 4.2 插槽 4.2.1 什么是插槽 ​编辑 4.2.2 具名插槽 4.2.3 作用域插槽 4.3 自定义指令 4.3.1 什么是自定义指令…

使用美化方法设计嵌入的子窗体(三)

使用美化方法设计嵌入的子窗体 分析效果图的实现 效果图&#xff1a; 新建 Windows 窗体 新窗体命名&#xff1a;FrmAddProduct.cs修改窗体的 Text 属性&#xff1a;新增商品修改窗体的位置&#xff1a;StartPosition&#xff1a;CenterScreen窗体的无边框设计&#xff1a…

MySQL 8.0.19安装教程(windows 64位)

在c盘目录下的Program Files目录下创建MySQL目录&#xff0c;将下载好的mysql解压到里面 解压完是这个样子 配置初始化的my.ini文件的文件 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirC:\Program Files\MySQL # 设置mysql数据库的数据的存放目录 datad…

Pytorch DistributedDataParallel(DDP)教程一:快速入门理论篇

Pytorch DistributedDataParallel&#xff08;DDP&#xff09;教程一&#xff1a;快速入门理论篇 目录 一、 写在前面二、什么是分布式并行训练1. 并行训练2. 数据并行 三、DDP的基本原理1. DDP的训练过程2. Ring-All-Reduce算法 四、如何搭建一个Pytorch DDP代码框架1. 与DDP有…

Shortened LLaMA:针对大语言模型的简单深度剪枝法

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 论文标题 & 发表会议&#xff1a;Shortened LLaMA: A Simple Depth Pruning for Large Language Models&#xff08;ICLR 2024 Workshop&#xff09; 论文地址&#xff1a;https://arxiv.org/abs/…

Qt标准对话框中文qm文件加载

当使用qt标准对话框时&#xff0c;如QMessageBox&#xff0c;QFileDialog等时&#xff0c;默认都是英文。这时可以从qt安装路径下找到一个translations的文件夹&#xff0c;里面就是qt所有的翻译文件qm文件。 标准对话框主要使用qt_zh_CN.qm , 但是通过查看qt_zh_CN.ts文件里面…