一、研究背景与意义
近年来,中国电子商务市场持续高速发展。据国家统计局数据,2023年全国网上零售额达15.42万亿元,同比增长11.0%,其中实物商品网上零售额13.02万亿元,占社会消费品零售总额的比重达27.6%。随着淘宝、京东、拼多多等电商平台的普及,平台积累了海量的用户浏览、搜索、加购、收藏、购买、评价等行为数据。如何从这些海量行为数据中挖掘用户的购买规律,预测用户未来的购买行为,实现精准营销和个性化推荐,已成为电商平台提升转化率和用户复购率的核心竞争力。
然而,当前电商用户行为分析面临三大挑战:一是数据规模庞大,头部电商平台日均可产生数十亿条用户行为日志,传统单机分析工具难以处理如此规模的数据;二是用户行为数据维度复杂,包含浏览、点击、搜索、加购、购买等多种行为类型,各行为之间存在复杂的关联关系,需要多维度的特征工程才能有效利用;三是业务场景对时效性要求高,大促期间流量激增,需要实时更新用户画像和购买预测结果,对计算引擎的性能和实时性提出了较高要求。
Apache Spark作为新一代大数据计算框架,基于内存计算的特性比传统Hadoop
MapReduce快10到100倍,其内置的MLlib机器学习库提供了分类、回归、聚类等丰富的算法实现,非常适合处理大规模用户行为数据的分析和预测任务。基于Spark构建电商用户购买行为分析与预测系统,既能利用Spark的分布式计算能力处理海量用户行为日志,又能通过MLlib中的机器学习算法实现精准的购买行为预测,具有重要的实用价值和研究意义。
二、国内外研究现状
(一)国外研究现状
在电商用户行为分析领域,国外研究起步较早,已形成较为成熟的技术体系。美国斯坦福大学的Leskovec等人在2019年基于Apache
Spark构建了大规模电商用户行为分析平台,处理某在线零售平台的1.5亿条用户交易记录,采用RFM模型对用户进行分群,其研究目的是识别高价值用户群体,为精准营销提供数据支撑。美国亚马逊公司的Linden等人在2020年将协同过滤算法与深度学习相结合,构建了深度推荐模型,利用用户浏览序列和购买序列数据预测用户下一次购买的商品类别,其研究目的是提升电商首页推荐的点击率和转化率。
在分布式机器学习方面,美国加州大学伯克利分校的Xin等人在2021年提出了Spark
MLlib中的梯度提升树(GBDT)并行优化方案,将决策树的特征分裂计算并行化,在千万级用户数据集上训练时间缩短了60%,其研究目的是解决Spark机器学习在大规模分类任务上的性能瓶颈。美国eBay公司的Zhang等人在2022年基于Spark
Streaming构建了实时用户购买预测系统,实时处理用户的浏览流数据,每5分钟更新一次用户购买概率预测,其研究目的是在用户浏览过程中实时触发个性化营销弹窗,提升购买转化率。
在用户购买预测模型方面,美国麻省理工学院的Schneider等人在2023年对比了逻辑回归、随机森林、XGBoost、深度神经网络四种算法在电商用户复购预测任务上的表现,发现XGBoost在特征工程完善的情况下预测准确率最高,其研究目的是为电商企业选择最优的复购预测算法提供参考。总体来看,国外在电商用户行为分析和分布式机器学习方面积累了丰富经验,但主要面向亚马逊、eBay等海外平台,用户行为模式和业务场景与国内电商存在差异。
(二)国内研究现状
国内学者在电商用户行为分析领域也取得了一系列成果。清华大学数据科学研究院的朱文武团队在2020年开展了基于Spark的电商用户购买预测研究,使用某电商平台的千万级用户行为日志数据,通过逻辑回归模型预测用户在未来7天内的购买概率,其研究目的是为平台的个性化推荐和广告投放提供目标用户圈选工具。浙江大学计算机学院的陈为团队在2021年研发了电商用户行为可视化分析系统,利用ECharts绘制用户行为漏斗图、用户分群雷达图、购买趋势热力图,其研究目的是帮助运营人员直观理解用户行为转化路径和群体特征。
在用户分群与精准营销方面,中国科学院计算技术研究所的曹娟团队在2022年基于Spark
MLlib的K-Means算法对电商用户进行RFM分群,将用户划分为重要价值用户、重要保持用户、重要发展用户、一般用户等八个群体,其研究目的是针对不同用户群体制定差异化的营销策略。上海交通大学的张伟楠团队在2023年设计了融合时间衰减因子的用户购买预测模型,将用户最近30天的行为权重提高,历史行为权重按时间指数衰减,其研究目的是捕捉用户购买兴趣的动态变化,提升预测时效性。
在AI辅助用户行为分析方面,复旦大学的肖仰华团队在2024年将大语言模型引入电商用户行为分析场景,利用DeepSeekAI工具对用户评论和行为数据进行语义分析,自动生成用户画像标签和营销策略建议,其执行过程包括评论文本情感分析、用户偏好提取、营销文案自动生成三个环节,其结果是实现了从用户行为数据到营销决策的智能化转换,其研究目的是提升电商运营的智能化水平。
(三)研究述评
综合国内外研究现状可以发现,现有研究在电商用户购买预测算法、Spark分布式机器学习、用户分群可视化等方面已取得丰富成果,为本次系统开发提供了理论基础和技术参考。但现有研究仍存在以下不足:一是多数研究聚焦于单一预测模型,缺乏集数据采集、用户分群、购买预测、可视化展示于一体的完整系统;二是模型训练过程的工程化展示不足,特征工程和模型调优的细节不够透明;三是预测结果的业务解读不足,运营人员难以直接根据预测结果制定营销策略。
在前人研究基础上,本课题将面向国内电商场景,构建一个基于Spark的电商用户购买行为分析与预测系统。系统将基于Spark技术栈处理海量用户行为日志,采用XGBoost算法实现用户购买行为预测,结合RFM模型进行用户分群,并通过可视化界面展示分析结果,同时引入DeepSeekAI工具实现预测结果的智能解读,弥补现有研究在完整系统实现和业务场景落地方面的不足。
三、研究内容与目标
(一)研究目标
本课题的总体目标是设计并实现一个基于Spark的电商用户购买行为分析与预测系统,通过分布式计算技术对海量电商用户行为数据进行分析和建模,预测用户在未来一段时间内的购买概率,为电商平台的精准营销和个性化推荐提供数据支撑。
具体目标包括:第一,构建包含用户浏览、搜索、加购、购买等多维度行为特征的数据集,数据规模达到百万级用户、千万级行为记录;第二,基于Spark
MLlib实现XGBoost购买行为预测模型,预测准确率(AUC)达到0.80以上;第三,实现RFM用户分群和可视化分析功能,将用户划分为5-8个价值群体;第四,系统支持批量预测和用户画像查询,批量预测小时级完成,单用户查询响应时间控制在300毫秒以内。
(二)主要研究内容
本课题的主要研究内容包括以下四个方面:
第一,用户行为数据采集与特征工程研究。针对电商平台的用户行为日志数据,研究数据清洗和特征工程方法。包括从原始行为日志中提取用户维度的统计特征:浏览次数、加购次数、收藏次数、购买次数、最近一次购买时间、累计消费金额、平均客单价等;提取时间特征:活跃天数、活跃时段、周末活跃度;提取品类特征:浏览品类数、购买品类数、偏好品类等。将原始行为日志转化为可用于模型训练的结构化特征向量。
第二,基于Spark的购买行为预测模型训练研究。基于Spark
MLlib机器学习库,搭建购买行为预测模型,重点研究XGBoost梯度提升树算法在用户购买预测场景中的应用。详细设计模型训练流程:数据划分、特征向量化、模型训练、参数调优、模型评估。通过对比不同算法和参数组合的模型表现,选择最优模型。
第三,用户分群与可视化分析系统实现研究。基于RFM模型和K-Means聚类算法对用户进行分群,基于SpringBoot+Vue前后端分离架构开发Web系统,实现用户画像展示、用户分群分析、购买趋势预测等可视化功能。利用ECharts绘制用户行为柱状图、用户分群雷达图、购买趋势折线图等图表,支持运营人员按时间、品类、用户群体等维度筛选查看分析结果。
第四,AI辅助预测解读模块研究。引入DeepSeekAI大语言模型工具,对预测结果和用户分群进行自然语言解读。按照"执行—过程—结果"三段式逻辑设计:执行阶段接收运营人员的查询指令;过程阶段调用Spark计算引擎完成数据聚合和模型预测;结果阶段将分析结果转化为通俗易懂的文字描述,并配合可视化图表展示营销建议。
四、系统功能设计
(一)系统总体架构
本系统采用分层架构设计,自下而上分为数据采集层、数据存储层、计算引擎层、业务逻辑层和前端展示层五层。数据采集层负责采集电商用户行为日志数据;数据存储层基于HDFS和Hive存储海量行为数据,MySQL存储业务元数据;计算引擎层以Spark为核心,负责特征工程、模型训练和批量预测;业务逻辑层基于SpringBoot提供API服务;前端展示层基于Vue+ECharts实现可视化交互界面。
系统技术栈选型如下:大数据存储采用Hadoop 3.3(HDFS+Hive);计算引擎采用Spark 3.2 +
MLlib机器学习库;后端采用SpringBoot 2.7 + Java 11;前端采用Vue 3 + Element Plus +
ECharts 5;数据库采用MySQL 8.0和Redis 6.0。
(二)核心功能模块
- 数据管理模块 数据管理模块负责用户行为数据的接入、清洗和特征工程。系统每日自动同步前一日的用户行为日志数据,自动完成数据清洗(去重、异常值过滤、缺失值处理)和特征工程(RFM指标计算、行为统计特征提取、品类偏好特征构建),将处理后的标准化特征数据写入Hive数据仓库。模块提供数据质量监控面板,展示每日数据量、字段完整性、异常记录数等指标。
- 购买行为预测模块 购买行为预测模块是系统的核心功能,基于Spark MLlib的XGBoost分类算法实现。模块支持两种预测模式:批量预测和实时预测。批量预测模式每日凌晨自动执行,基于最新的用户行为特征训练模型,为每一位活跃用户预测未来7天的购买概率,预测结果按概率分为高、中、低三档,写入MySQL数据库供营销使用。实时预测模式针对单个用户的即时请求,从Redis缓存中读取该用户的预测结果,毫秒级返回。
预测目标定义为二分类任务:用户在未来7天内是否会发生购买行为(1=会购买,0=不会购买)。输入特征包括用户历史行为统计特征、RFM指标、品类偏好特征、时间特征等。输出为用户的购买概率(0-1之间的浮点数)和预测类别。- 用户分群与可视化分析模块 可视化分析模块面向电商运营人员,提供多维度的用户行为分析和预测结果展示: (1)用户行为转化漏斗柱状图:展示用户从浏览、点击、加购、收藏到购买的完整转化路径。柱状图横轴为行为阶段,纵轴为用户数。例如,某电商平台月度数据显示,浏览商品的用户有100万人,点击进入详情页的有45万人,加购的有12万人,收藏的有8万人,最终购买的有5.6万人,整体转化率为5.6%。该柱状图的意义在于直观展示用户行为转化的关键流失节点,为优化转化路径提供数据参考。
(2)用户分群雷达图:基于RFM模型,从最近购买时间(Recency)、购买频率(Frequency)、消费金额(Monetary)三个维度绘制不同用户群体的雷达图。例如,重要价值用户的雷达图在R、F、M三个维度都处于高水平,雷达图面积大;而流失用户的雷达图在R维度得分极低,F和M维度也较低。雷达图的意义在于多维度综合刻画不同用户群体的价值特征,帮助运营人员理解各群体的差异。
(3)购买趋势折线图:展示未来30天的用户购买量预测趋势。横轴为日期,纵轴为预测购买用户数,区分工作日和周末。运营人员可以直观看到购买量的周期波动规律,提前做好库存和营销资源准备。
(4)用户年龄分布饼图:展示平台用户的年龄结构分布。例如,18-25岁占比22%、26-35岁占比41%、36-45岁占比24%、46岁以上占比13%。饼图帮助运营人员了解核心用户群体的年龄特征,指导选品和营销策略。- 智能问答模块 智能问答模块基于DeepSeekAI大语言模型构建,运营人员可以用自然语言向系统提问,例如"哪些用户最可能在下周购买?"“高价值用户的复购率是多少?”"本周哪个品类卖得最好?"系统自动解析问题,调用后端API获取预测和统计数据,并以文字+图表的形式返回结果。
该模块按照"执行+过程+结果"三段式逻辑运行:执行阶段,系统接收用户自然语言问题,通过意图识别和实体提取确定查询维度和指标;过程阶段,系统调用Spark计算引擎对用户行为数据进行聚合统计和模型预测;结果阶段,DeepSeekAI将数据结果转化为通俗易懂的自然语言描述,同时自动生成对应的可视化图表,并给出具体的营销建议。
五、数据分析与模型训练方案
(一)数据来源与预处理
本系统的核心数据来源于某电商平台公开的用户行为数据集,包含约100万用户的2000万条行为记录。数据集字段包括:用户ID、商品ID、品类ID、行为类型(浏览/点击/加购/收藏/购买)、时间戳。数据时间跨度为6个月。这是系统的核心训练数据来源。
数据预处理分为四个步骤:
第一步是数据清洗。去除重复记录,过滤异常行为数据(如1秒内连续点击同一商品100次的刷数据行为),补全缺失的品类ID字段。清洗后保留约1800万条有效行为记录。
第二步是特征工程。基于用户维度,从原始行为日志中提取以下特征:浏览次数、点击次数、加购次数、收藏次数、购买次数、最近一次浏览距今天数、最近一次购买距今天数、累计消费金额、平均客单价、活跃天数、浏览品类数、购买品类数、偏好品类(浏览次数最多的品类)等。每个用户最终生成约20个特征。
第三步是标签构造。以预测日为时间节点,观察用户在接下来7天内是否发生购买行为,构造二分类标签:发生购买记为1,未发生购买记为0。正负样本比例约为1:4,后续通过类别权重调整解决样本不平衡问题。
第四步是数据集划分。将清洗后的数据集按时间维度划分为训练集和测试集,用前5个月的数据作为训练集(约80万用户),最后1个月的数据作为测试集(约20万用户),模拟真实场景中的时间预测任务,避免数据泄露。处理后的数据写入Hive数据仓库,按ODS、DWD、DWS、ADS四层架构组织。
(二)模型选择与训练流程
本系统采用Spark MLlib中的XGBoost分类算法作为主模型,同时对比逻辑回归、随机森林两种算法,选择最优模型。
选择XGBoost的原因:一是梯度提升树算法在结构化数据分类任务中表现优异,能够自动捕捉特征之间的非线性关系和交互效应;二是XGBoost内置了特征重要性评估,模型可解释性较好;三是Spark
MLlib提供了XGBoost的分布式实现,能够处理百万级用户、千万级样本的训练任务。 模型训练流程如下:
第一步,数据加载与向量化。从Hive中读取训练集数据,将分类特征(如偏好品类)进行One-Hot编码,将所有特征组合成Spark
MLlib的VectorAssembler向量格式,标签列作为label。 第二步,模型训练。使用Spark
MLlib的XGBoostClassifier类进行模型训练。初始参数设置为:最大树深度maxDepth=6、学习率learningRate=0.1、迭代轮数numRounds=100、子采样比例subsample=0.8、列采样比例colsampleByTree=0.8。训练过程在Spark集群上分布式执行,每个分区并行训练一部分数据,最后汇总得到全局模型。
第三步,模型评估。在测试集上评估模型性能,使用以下四个指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1值、AUC(ROC曲线下面积)。重点关注AUC指标,因为AUC对类别不平衡问题具有较好的鲁棒性。
第四步,超参数调优。使用交叉验证(CrossValidator)和网格搜索(ParamGridBuilder)对关键超参数进行调优。搜索的参数范围包括:maxDepth=4/6/8/10、learningRate=0.05/0.1/0.2、numRounds=50/100/200。通过5折交叉验证选择验证集AUC最高的参数组合作为最终模型参数。
(三)用户分群模型训练
除了购买预测模型,系统还实现了基于RFM模型的用户分群。RFM三个指标的计算方式如下:
R(Recency,最近购买时间):用户最近一次购买行为距离统计截止日的天数,数值越小表示用户越活跃。F(Frequency,购买频率):用户在统计周期内的购买次数。M(Monetary,消费金额):用户在统计周期内的累计消费总金额。
计算出每个用户的R、F、M值后,使用K-Means聚类算法将用户划分为不同群体。聚类数k选择5-8个,通过肘部法则(Elbow
Method)确定最优聚类数。将聚类结果命名为:重要价值用户、重要保持用户、重要发展用户、一般价值用户、一般保持用户、流失用户等。
K-Means聚类在Spark
MLlib中实现,将RFM三个特征标准化(Z-Score标准化)后输入KMeans类进行训练。迭代次数设置为20次,距离度量采用欧氏距离。
(四)可视化实现方案
前端可视化采用ECharts 5实现,针对不同分析需求设计不同的图表类型:
对于转化漏斗数据(如用户行为转化路径),采用柱状图进行展示。柱状图的高度直观映射各阶段的用户数量,柱子之间的高度差直观反映转化率。例如,展示2024年某电商平台月度用户行为转化漏斗,浏览100万人、点击45万人、加购12万人、收藏8万人、购买5.6万人,柱状图按行为阶段排列后,运营人员可以一眼看出哪个环节流失最严重。
对于多维度用户画像(如RFM用户分群),采用雷达图进行展示。雷达图三个顶点分别对应R、F、M三个维度,每个维度的数值经过归一化处理。雷达图的面积和形状直观反映用户群体的价值特征,例如重要价值用户的雷达图面积大且三个维度均衡,流失用户的雷达图在R维度极度收缩。
对于时间序列数据(如购买趋势预测),采用折线图进行展示。折线图横轴为日期,纵轴为购买用户数,实际值和预测值用不同颜色折线表示,支持点击图例切换显示。运营人员可以直观看到购买量的周度波动规律和长期趋势。
对于用户属性分布(如年龄、性别分布),采用饼图进行展示。饼图各扇形的面积直观对应各群体的占比大小,支持点击某一类别查看该群体的详细画像。
所有可视化图表均支持交互功能:数据缩放、图例筛选、数据高亮、下钻查询等,运营人员可以根据分析需求自由探索数据,从整体趋势下钻到单个用户群体、单个品类的明细数据。