pyspark英国零售电商用户画像(RFM)

1 环境搭建

本次作业使用的环境和软件如下:

(1)Linux操作系统:Ubuntu 16.04
(2)Python:3.5.2
(3)Hadoop:3.1.3
(4)Spark:2.4.0

具体的安装步骤参考林子雨的教程基于零售交易数据的Spark数据处理与分析

2 数据处理

数据处理及分析参考链接在这里

数据清洗的操作主要有:

  1. 数据缺失值处理:删除CustomerID为空值的135037条数据
  2. 数据去重:删除数据集中重复的、无价值的数据5268条
  3. 时间序列的处理:将InvoiceDate转换为时间序列InvoiceTime
  4. 异常值处理:删除Quantity数量和UnitPrice单价中小于等于0的值

处理好的数据还余392692条,保存为sales_success.csv文件。

然后将数据上传到hdfs:(假设你的数据保存在/home/hadoop/下载/中)

./bin/hdfs dfs -put /home/hadoop/下载/sales_success.csv

3 用户画像

本节需要安装jupyter,参考教程也是林子雨老师的使用Jupyter Notebook调试PySpark程序

用户画像参考链接点击

3.1 读取数据

from pyspark import SparkContext
from pyspark import SQLContext
from pyspark.sql import SparkSession
from pyspark.sql.functions import split, concat, lit, substring
from pyspark.sql.functions import col, max as max_
from pyspark.sql.types import TimestampType
from pyspark.sql.functions import to_timestamp
from pyspark.sql.functions import unix_timestamp
from pyspark.sql.functions import rank,sum,to_date, datediff, max, count,to_utc_timestamp, unix_timestamp,expr,mean
import pyspark.sql.functions as F
spark = SparkSession \
    .builder \
    .appName("pySpark RFM") \
    .config("spark.some.config.option", "some-value") \
    .getOrCreate()
df = spark.read.format('com.databricks.spark.csv').\
                       options(header='true', \
                       inferschema='true').\
            load("sales_success.csv",header=True);

查看数据前5行:

df.show(5)

在这里插入图片描述

3.2 RFM用户画像

3.2.1 时间序列

df = df.withColumn("InvoiceTime", to_timestamp(col("InvoiceTime"), 'yyyy-MM-dd HH:mm:ss'))
df.show(5)

在这里插入图片描述

3.2.2 计算R、F、M值

  • 最近一次的消费时间(Recency):
    一般考虑最近一次消费到某固定时间点的间隔时长,这个维度需要结合业务的特点加以考虑。基于历史数据的分析,大概率上满足,消费频率越高的用户粘性更大,也更可能成为忠实用户。此时,如何预防用户出现厌倦流失等状况,如何稳定住这批客户是需要关注的问题。而对于那些早期有过消费但很快流失的客户,则需要从更多的数据中尝试挖掘出共性。

  • 一段时间内的消费频次(Frequency):
    一段时间内,对于购买消费频次更高的用户,其忠诚度更高,在很大概率上也更容易产生下一次消费行为。基于历史交易数据分析用户的消费频次数据,一般情况下也是满足周期性或者比较稳定的规律;如果出现了比较异常的数据,可能更需要在业务角度提供推荐、优惠、回访等方式进行关注。

  • 一段时间内的累计消费额(Monetary):
    一般是累积某时间段内用户消费的总金额,比如一年内,一个月内的消费总额;一般的,消费越多的用户有更大概率去购买更用心和更高级的产品;这类用户可能在消费观上更愿意接受新产品,此时通过建立合适的 VIP 机制或者类似的用户回馈机制,可以提高用户的体验。

  • 计算时间间距

rfm = df\
.groupBy("CustomerID")\
.agg(max_("InvoiceTime").alias('LastDate'))
max_date = df.agg({
   "InvoiceTime": "max"}).collect()[0][0]
rfm = rfm.withColumn("RecentDate", lit(max_date))
  • R值
rfm = rfm.withColumn("recency", datediff(col("RecentDate"), col("LastDate")))
rfm = rfm.select("CustomerID", "recency")
  • M值
monetary = df.groupBy("CustomerID").agg(sum("SumPrice").alias('monetary'))
  • F值
freq = df.groupBy("CustomerID").agg(count("StockCode").alias('frequency'))
  • 合并起来
rfm = rfm.join(monetary, [
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 基于RFM模型电商零售数据分析是指通过对顾客的最近购买时间(Recency)、购买频率(Frequency)和购买金额(Monetary)进行综合评估,对顾客进行划分和分析,以便针对不同的顾客采取相应的营销策略。 首先,通过对电商零售数据的RFM指标进行计算,可以得到每个顾客的RFM得分,这些得分反映了顾客在购买行为上的表现。然后,可以根据RFM得分将所有顾客分为不同的等级,如重要客户、潜在高价值客户、一般客户和低价值客户等。 其次,对于重要客户,电商可以针对性地提供更加个性化和高价值的服务,如独享折扣、VIP礼遇、定制化需求满足等,以提高他们的忠诚度和购买频率。 对于潜在高价值客户,电商可以通过精准广告投放、提供专属优惠码等方式,吸引他们成为实际的高价值客户。 对于一般客户,电商可以通过提供一些基本的会员权益,如免费配送、生日特权等,激发他们的购买欲望,同时也提高他们的忠诚度。 对于低价值客户,电商可以通过促销活动、打折等方式吸引他们重新购买,或者通过精细化营销策略,将其转化为高价值客户。 此外,通过RFM模型的数据分析,还可以发现购买时间、购买频率和购买金额之间的关系,找到不同类型的顾客在这些指标上的差异,并据此进行精细化的目标市场划分,更好地满足顾客需求。 综上所述,基于RFM模型电商零售数据分析可以帮助电商更好地了解和管理顾客,制定个性化的营销策略,提高销售业绩和顾客满意度。 ### 回答2: 基于RFM模型电商零售数据分析是一种常见的方法,用于评估和细分客户群体。 首先,RFM模型代表了最近购买(Recency)、购买频率(Frequency)和购买金额(Monetary)这三个指标。这些指标可以帮助电商零售商了解客户的购买行为和价值。 通过分析最近购买的时间,我们可以了解客户的活跃度和忠诚度。购买频率可以告诉我们客户的购买行为习惯,例如他们是经常购买还是偶尔购买。购买金额可以揭示客户的消费水平和偏好。 利用RFM模型,我们可以将客户细分为不同的群体。例如,我们可以识别出高价值客户,即最近购买、购买频率和购买金额都高的客户。这些客户通常是电商零售商的重要利润来源。另一方面,低价值客户则可能是需要关注的潜在客户。 通过深入分析RFM模型,我们可以得出以下结论:1)购买频率是提高客户价值的关键因素,因为它可以促使客户不断回购和增加购买次数;2)最近购买是与客户忠诚度直接相关的因素,因为较长时间没有购买可能表示客户对该品牌或产品的兴趣下降;3)购买金额与客户的消费能力和购买行为相关,因此对于客户的细分和个性化推荐非常重要。 综上所述,基于RFM模型电商零售数据分析可以帮助电商零售商更好地了解客户,并制定相应的营销策略,提高客户忠诚度和购买行为,从而实现销售增长和利润提升。 ### 回答3: RFM模型是一种常用的电商零售数据分析模型,它基于顾客的最近购买时间(Recency)、购买频率(Frequency)和购买金额(Monetary)三个维度进行分析,可以帮助企业识别出高价值的顾客群体。 首先,通过对顾客最近一次购买时间的分析,可以确定哪些顾客是近期活跃的,比如最近3个月内购买过商品的顾客,这些顾客具有较高的购买潜力和忠诚度,可以进行精准的市场推广和个性化营销。 其次,通过对顾客购买频率的分析,可以识别出经常购买的忠诚客户和不太活跃的潜在客户。经常购买的忠诚客户可以通过专属折扣、会员权益等方式进行奖励和留存,而不太活跃的潜在客户可以通过精准的优惠券、活动邀请等方式进行再度唤回。 最后,通过对顾客购买金额的分析,可以判断顾客的消费水平和支付能力。高消费的顾客通常购买力强,可以成为品牌重点培养的VIP客户,可以提供个性化的服务和高端产品推荐,以增强顾客满意度和留存率。 在电子商务中,RFM模型还可以与其他模型结合使用,比如与用户行为分析模型、推荐算法等,进一步优化个性化推荐、购物车留存等各个环节。 总结来说,基于RFM模型电商零售数据分析可以帮助企业了解顾客的购买行为和价值,以制定精准的营销策略,提高销售额,提升顾客满意度和忠诚度。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值