首页 > 其他分享 >数据分享|R语言用RFM、决策树模型顾客购书行为的数据预测|附代码数据

数据分享|R语言用RFM、决策树模型顾客购书行为的数据预测|附代码数据

时间:2023-04-12 21:36:12浏览次数:46  
标签:购书 预测 模型 神经网络 拟合 数据 RFM 决策树

全文链接:http://tecdat.cn/?p=30330

最近我们被客户要求撰写关于RFM、决策树模型的研究报告,包括一些图形和统计输出。

团队需要分析一个来自在线零售商的数据

该数据包含了78周的购买历史。该数据文件中的每条记录包括四个字段。客户的ID(从1到2357不等),交易日期,购买的书籍数量,以及价值。我们被要求建立一个模型来预测消费者每周的购买频率、书籍的购买单位和购买价值。

图片

RFM模型

RFM是一个用于营销分析的模型,它通过购买模式或习惯来细分公司的消费者群体。特别是,它评估了客户的回顾性(他们多久前进行过一次购买)、频率(他们购买的频率)和价值(他们花多少钱)。

然后,通过测量和分析消费习惯,RFM被用来识别一个公司或组织的最佳客户,以改善低分客户并保持高分客户。

关键要点

经常性、频率、价值(RFM)是一种营销分析工具,用于根据客户消费习惯的性质来确定公司的最佳客户。一个RFM分析通过对客户和顾客的三个类别进行打分来评估他们:他们最近有多大的购买行为,他们购买的频率,以及他们购买的规模。RFM模型为这三个类别中的每一个客户打出1-5分(从最差到最好)的分数。RFM分析帮助企业合理地预测哪些客户有可能再次购买他们的产品,有多少收入来自于新客户(相对于老客户),以及如何将偶尔购买的买家变成习惯购买的买家。


####计算用户最近一次的购买


R_table$R <- as.numeric(NOW - ParsedDate)

###计算用户的购买频率
aggregate(FUN=length) # Calculate F

###计算用户的购买金额
aggregate(FUN=sum) # Calculate M

图片

得到每个用户的RFM值,利用RFM三个值的四分位数来对用户进行分类

图片

多元线性回归模型

查看回归模型结果

图片

得到对r值的线性拟合模型的结果,可以看到RFM三个分类值都与r值有显著的关系,Rsquare值达到了0.8以上,说明拟合效果较好。

图片

得到对r值的线性拟合模型的结果,可以看到RFM三个分类值都与f值有显著的关系,Rsquare值达到早0.4左右,说明拟合效果一般。

图片

得到对r值的线性拟合模型的结果,可以看到出了M分类值以外,FM的分类值都与f值有显著的关系,Rsquare值达到了0.4左右,说明拟合效果一般。


点击标题查阅往期内容

图片

数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化

图片

左右滑动查看更多

图片

01

图片

02

图片

03

图片

04

图片

对测试集做预测

线性回归模型预测值和拟合值比较

图片

预测拟合值的图中,红点表示实际样本点,可以看到F和M值的预测相对接近实际样本点,预测效果较好。然而,误差仍然比较大,因此尝试采用决策树模型进行预测。

决策树模型预测

ct <- rpart.control(xval=10, minsplit=20, cp=0.1)

绘制决策树

rpart.plot(fitR, branch=1, branch.type=2, type=1, 



           border.col="blue", split.col="red",

图片

图片 

从结果图来看,决策树对f值和m值的拟合程度更好。

图片

图片

图片

从三个模型的结果里来看,rel error和xerror都较小,因此模型预测拟合效果较好。

因此,模型的整体效果相对线性模型得到了提升。

图片


图片

点击文末 “阅读原文”

获取全文完整代码数据资料。

本文选自《R语言用RFM、决策树模型顾客购书行为的数据预测》。

点击标题查阅往期内容

数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
用PyTorch机器学习神经网络分类预测银行客户流失模型
R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例
Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化
R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感
Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化
Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析
R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告
R语言深度学习:用keras神经网络回归模型预测时间序列数据
Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
MATLAB中用BP神经网络预测人体脂肪百分比数据
Python中用PyTorch机器学习神经网络分类预测银行客户流失模型
R语言实现CNN(卷积神经网络)模型进行回归数据分析Python使用神经网络进行简单文本分类
R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析
R语言基于递归神经网络RNN的温度时间序列预测
R语言神经网络模型预测车辆数量时间序列
R语言中的BP神经网络模型分析学生成绩
matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
R语言实现拟合神经网络预测和结果可视化
用R语言实现神经网络预测股票实例
使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测
python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译
用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

标签:购书,预测,模型,神经网络,拟合,数据,RFM,决策树
From: https://www.cnblogs.com/tecdat/p/17311341.html

相关文章

  • 高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数
    全文链接:http://tecdat.cn/?p=23378最近我们被客户要求撰写关于高维数据惩罚回归方法的研究报告,包括一些图形和统计输出。在本文中,我们将使用基因表达数据。这个数据集包含120个样本的200个基因的基因表达数据。这些数据来源于哺乳动物眼组织样本的微阵列实验1介绍在本文中,我......
  • 数据采集——数据清洗
    数据清洗到目前为止,我们还没有处理过那些样式不规范的数据,要么是使用样式规范的数据源,要么就是彻底放弃样式不符合我们预期的数据。但是在网络数据采集中,你通常无法对采集的数据样式太挑剔。由于错误的标点符号、大小写字母不一致、断行和拼写错误等问题,零乱的数据(dirtydata)是......
  • 4月12日数据结构,线索二叉树,哈夫曼树,哈夫曼编码
    线索二叉树与以往的二叉树略有不同,普通二叉树在访问到叶子结点的时候会返回,往往递归的效率并不高,有时还可能有栈溢出的风险,但是线索二叉树在访问到叶子结点的时候因为没有左右孩子,所以他左边存放他前驱的指针。右边存放后继的指针,是指从一个非线性结构变成了一个可以线性访问的的......
  • 003.方差&回归分析以及pandas数据分析流程
    一、方差分析   二、回归分析 三、案例讲解 ......
  • 博途基本数据类型总结分析
     ......
  • Android sqlite 数据库查询,插入,删除,更新demo<第1章>
    //20140424创建数据库帮助类DataBaseHelper,继承SQLiteOpenHelper, 1. 编写构造函数,实现数据库创建;publicstaticfinalStringTAG="ListViewActivity";privatestaticintVERSION=1;privatestaticfinalStringTABLE_NAME="user1";privatestaticfinalSt......
  • 数据插入
    09:07:36.078[DEBUG][main][java.sql.Connection]-{conn-100045}PreparingStatement:insertintoRS_ACTIONRECORD(ACTIONNAME,SYSTRNID,OLDSTATUS,NEWSTATUS,AUDITTIMESTAMP,WORKER)values(?,?,?,?,?,?)09:07:36.078[DEBUG][main][java.sql.PreparedS......
  • CentOS系统使用docker-compose安装Doris数据库
    doris当前最新版本为1.2.31、docker与docker-compose安装    docker安装:CentOS安装Docker   docker-compose安装:docker-compose安装与使用2、doris相关下载   1)doris-be、doris-fe2) 3、修改vi/etc/security/limits.conf添加如下信息:*softnofile65......
  • python(十一):小型数据库:shelve
     Python中shelve模块是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的,可以作为一个简单的数据存储方案。使用时,只需要使用open函数获取一个shelf对象,然后对数据进行增删改查操作,在完成工作、并且将内存存储到磁盘中,最后调用close函数变回将......
  • 第三章数据链路层
    3.数据链路层3.1数据链路层概述3.1.1数据链路层的地位我们在学习数据链路层时,可以将其传输单独看作一条传输线路来进行学习3.1.2链路、数据链路、帧链路:是指一个节点到另一个节点之间直接相互连接(有线或者无线),例如主机H1和路由器R1之间相互连接就是一条链路若中......