京东用户购买行为预测论文

绪 论

1.1研究的背景与意义

随着电子商务、社交媒体等新兴产业的兴起,中国社交媒体已经进入了“AI时代”。随着互联网上消费者的不断增加,互联网上的推荐系统也得到了越来越多的应用。因此,如何构建有效的预测模型与推荐系统,将成为影响企业盈利的重要因素。随着大数据时代的来临,行业对于数据分析能力的需求也越来越迫切。通过数据挖掘技术来获得有价值的数据和信息,已成为当今信息处理领域的一个重要发展方向。除此之外,还有一个很重要的方面,就是根据使用者的行为,来判断使用者的行为[1]。

在电商时代,每个平台上都会有相关的商品,而对商品进行预测的首要目的,就是要根据用户的历史行为和真实需求,为其推荐所需商品。在此基础上,提出了一种基于用户行为分析的用户选择策略,并将其推荐给用户。推荐系统可以从大量的信息中发现有价值的东西,例如可以帮助用户迅速找到他们想要的东西。然而,现有的基于单个规则的推荐算法由于信息的缺失,效果并不理想。而本文利用关联规则的思想,从用户行为数据中,发现了很多不太显著的规律和隐含的关联特性,对产品设计和用户体验有很大的帮助[2]。

企业及商界人士已逐渐意识到,预测顾客消费行为的重要性。准确地预测用户的购买行为,增强了预测的效果,并保证了客户的数量,进而提高了营业收入和利润。消费者在购买商品之前,会在网上留下自己的购买行为(点击、浏览、添加等)信息。利用大数据处理技术,高效地挖掘消费者的偏好、风格等数据,并对消费者的兴趣和喜好展开有效的分析,最终实现对消费者的个性化推荐。

在电子商务发展初期,大多数公司都是根据现有的顾客消费信息来构建自己的商业智能体系。根据各阶段的销售季度,不断地整合用户的消费行为,同时根据每个销售季度的销售金额和销售利润,快速地整理出销售报表,并制定下一季度的销售策略,以保证商家在每一个销售季度都能保持正确的经营模式。但是,仅以用户的表面销售行为数据为基础构建的商务智能系统,不能全面地反映出用户的购买意识和购买习惯,在挖掘高价值用户和高价值潜在用户时,精度较低,并且需要消耗大量的人力资源。随着机器学习技术的发展,在电商行业中,传统的智能商务系统已经被逐渐替代,这使得对数据库中高价值用户的使用得到了有效的提高。其中,特别是用户群模型(Lasso回归 M)和客户未来消费行为预测方法,更是被广泛应用。通过分群与预测模型,能够对用户进行归类,对用户行为进行归类,对用户群体进行可视化划分,从而能够对用户的消费行为进行预测,从而能够更好地进行精准的营销宣传[3]。

本文基于京东平台的真实用户、商品和消费行为等数据,利用数据挖掘技术和机器学习等技术,通过对数据的分析,构建了一个用户的购物预测模型,并通过比较可能的高消费群体和相应的商品,来进行预测。为了达到精准营销,为其提供优质的目标人群,并对其进行了有效的分析。

1.2国内外研究评述

1.2.1 推荐系统的研究现状

本文对现有的推荐系统进行了改进,并提出了各种推荐算法。传统的协同筛选方法主要是根据用户历史数据推断出用户偏好,但用户偏好是动态变化的,本文拟将追踪抑制理论与基于对象的协同筛选方法相结合,以更准确地发现用户偏好的演变规律。王健宗等(2021)提出一种新型的、安全的、适用于大规模网络的、可有效融合多个信息的、实用性更强的、适用范围更广的、可融合多个信息资源的、支持矢量融合信息融合的联邦协同滤波算法,但是,Fidelity的出现又带来了Fideral Policy (Front Coupling),使其在数据的稀疏性、可扩展性和相关性方面面临着巨大的挑战。Bansal Saumya (2020)提出了一种Bi.MARS算法,其精度比其它8种方法提高66.3%[4]。

1.2.2 用户购买预测的研究现状

当前,在预测消费者购买行为时,存在着两个问题:一是数据不均衡的处理问题,二是特征选择问题;在数据处理与特征选择上,段海龙(2020)利用 k均值聚类,根据每一群中样本数目所占的比重,将被剔除样本的数目分配到每一群中,达到了样本平衡,因此可以有效地规避随机不足抽样方法带来的信息损失。在模型构建方面,很多学者都使用单一的预测模型,比如, Tang et al.(2017)使用 SVM (SVM)构建了一个具有最佳参数的 SVM模型,得到了优于 SVM的结果。但是,单一模型在处理用户行为数据时,存在着解释力不强、准确率不高等问题。(2020)基于 Logistic回归与线性回归,分别建立并验证了两个预测模型。针对传统集成学习方法视角单一、学习效果不佳的问题,本文拟采用完全关联的长短期记忆网络(FC.LSTM)对消费者购买行为进行预测。目前,集成学习模型的发展非常迅速,而且取得了很大的进展,已经有了多种模型的组合,例如神经网络间的组合、集成模型间的组合、 Stacking思想等。这类模型包含了多种类型的基模型,可以最大限度地发挥每个基模型的优点,从而在改善模型性能的同时,还可以提高总体的预测精度。例如,胡晓丽等(2020)提出了一种分段下样本+CNN.LSTM组合网络的模型,通过对电商平台上的真实数据集进行测试,结果表明,与标准模型相比,该模型的F1值平均提高了7%.11%。Zhang Huibing (2020)分别建立了线性回归、岭回归和 California三个模型,并使用FCV. stack (FCVS)将三个模型进行融合,最终得到了一个统一的联合学习模型。

1.3研究的主要工作

本文立足于现实,基于京东商城的真实用户、商品和行为数据,建立用户购物的预测模型,来预测用户在将来,对某一目标类别的商品的购买意愿。

以下是主要工作内容:

(1)数据清洗

1.验证数据集完整性

2.验证数据集中是否存在缺失值

3.掌握如何处理数据集中的每个特征值的方法

4.判断哪些数据是我们想要的,哪些可以被过滤掉

5.判断完成后将有价值的数据信息转化为新的数据源

6.根据上面的结果删除与行为无关的产品和用户

7.删除具有大量观看次数但购买次数较低的用户,我们称之为惰性用户或爬虫用户

(2)对数据处理结果的理解和分析

1.前提是掌握每个功能的含义

2.观察数据的特征以及判断是否可以用于建模

3.通过图表的方式让结果直观显示,便于分析

4.考虑用户的购买意愿是否会随时间和其他因素而变化?

(3)特征工程

1.根据清理后的数据集,判断哪些功能数据是有价值的?

2.分别提取用户,产品和他们之间的行为的特征

3.评判行为的核心因素是什么?并考虑如何提取?

4.判断是瞬时行为特征还是累积行为特征?

(4)建立模型

1.使用机器学习算法进行预测

2.设定与调整参数

3.细分数据集

2 相关理论概述

2.1 用户在线购买行为数据的特点

在用户的购物过程中,存在着大量的用户点击、浏览和加购物车的数据,但是用户的订单数据所占的比例很小,所以,用户的网络购物行为数据存在着严重的样本类型分布失衡问题。在用户的消费行为数据集中,最有价值的就是那些引发了购买行为的用户。在识别出最容易产生购买行为的使用者群体之后,再把有限的行销资源分配给使用者,使使用者能够更好地运用行销策略。由于训练数据集中的样本分布严重不均衡,使得预测模型的预测结果偏向于比数量更多,所以,如果能够保证预测模型在大部分类别中都是正确的,那么,即使只有很小的一部分出现了错误,预测模型的整体精度也会很高,所以,预测模型很容易趋向于将样本归数量最多。在一个训练数据集内,样本不平衡的情况下,如何能够对几种类型的样本做出精确的预测,这是一个预测模型需要解决的问题。

2.2 数据层面解决数据不平衡方法

数据非均衡是当前的一个热点,因为它可以在一定程度上解决数据非均衡问题,比优化算法更易解决。针对数据级数据失衡问题,从本质上讲是一种数据预处理,通过多种抽样方式均衡样本类型的分布,将训练样本集与分类算法相匹配。目前,在数据层面,针对非平衡数据的处理方法有三种:欠抽样、过抽样和混合抽样。

(1)不完全样本

向下采样方法能有效地消除多类样本中的某些冗余,从而使数据趋于平衡。其中,最简单的一种下采样方法即为随机下采样方法,是指在整个多数类样本集中,随机地删除一部分样本,以达到样本数据平衡的效果。然而,由于随机选取的样本具有一定的随机性,部分具有较高价值的大多数类样本数据极有可能被剔除,因而无法提高预测模型的预测效果。为此,研究者提出三种改进方法:(1)基于聚类的欠采样,在此基础上,引入聚类思想,将其引入到一个新的训练集中,将其放置在一个新的训练集中,过滤掉边缘点和噪声,实现对大多数样本的最优选取。第二类是基于距离的缺欠采样,它通过计算多类样本与少类样本之间的间隔,从多类样本集合中选择与少类样本点相距较远的多类样本点,并将这些点作为待采样的样本。第三类是进化法,它利用优化算法来确定最优采样率,或者利用分级评估指标来指导最优采样以获得最多采样子集中的最佳采样率。

(2)混合采样方法

其中,最常用的数据均衡方式为过抽样法和欠抽样法,这两种方式分别通过多类别的样本提取和小类别的样本综合来达到均衡。在对数据进行均衡处理时,一方面要对数据集中的小类别样本进行扩充,另一方面又要对大类别样本进行最大程度的保留,二者均难以同时满足。针对抽样过拟合和抽样不足导致多类样本信息丢失的问题,研究者们提出了一种基于抽样抽取和合成的混合抽样方法。而混合采样则是通过“优势互补”的方法,将两种采样方法各自的优势融合在一起,从而获得更好的数据平衡。

2.3 算法层面解决数据不平衡方法

当前,在算法层次上,针对数据层次上的非平衡问题,一般采用改进现有的分类算法,或针对非平衡分布下的非平衡问题,但在算法层次上,非平衡问题的求解要求较高,且会导致算法的复杂性较高。在算法级上,针对非均衡数据的处理方法主要有集成方法、代价敏感学习方法、单类学习方法等。

整合法是将各种分类算法的优点进行整合,再利用整合的策略,使它们成为一个整体,从而实现各自的优点互补。近年来,针对非平衡类数据的分类问题,学者们提出了许多新的集成学习算法,其中最常用的是迭代式和并行式。

这种迭代式的综合运用了一种有监督的学习方法。针对样本类型分布不均的情况下,小样本数据极易被预测模型误判为大样本,且由于迭代融合算法在训练阶段侧重于前一轮融合算法误判的样本,故采用迭代融合算法对小样本数据进行融合,可提高小样本数据的辨识精度。该方法在基分类器学习时,对已有的基分类器进行改进,使其能够对已有的分类器进行改进,使其能够针对已有的分类器对已有的分类器进行改进。此外,人们还将 Boosting集成算法与重采样、代价敏感学习等技术联合,对非平衡数据进行分类,以提高迭代集成算法的性能。叠层式集成学习因其可融合多类异构算法的优势,近年来已被广泛应用于数据类型不平衡问题。

所谓的并行性整合,就是利用某种整合策略,将多个单一分类器进行平行整合,并对单一分类器的预测结果进行合成,从而达到改善预测效果的目的。结果表明,在样本类型不均衡的情况下,采用并联集成的组合分类器具有较好的分类性能。目前,使用最为广泛的并行化集成方法是以装袋为基础的集成学习(bagging.based ensemble)为基础,它不但可以缩短模型训练的时间,还具有很强的可扩展性。

2.4 模型构建

XGBoost是一种基于决策树集成的机器学习算法,最早由Chen和Guestrin在2016年提出。它是eXtreme Gradient Boosting的缩写,通过梯度提升的方式对训练数据进行模型拟合,采用C++实现了高效、灵活的分布式计算框架。

XGBoost可以应用于分类和回归问题,并且在多数情况下都能取得很好的结果。相较于传统的GBDT(Gradient Boosting Decision Tree)算法,XGBoost具有以下优点:

更快的运行速度:XGBoost采用了分布式计算框架和按特征并行的方法,大大加快了训练时间。

更高的准确率:XGBoost采用了正则化技术和自适应学习策略,避免过拟合和欠拟合问题,提高了模型泛化能力和预测准确率。

支持多种损失函数:XGBoost支持多种损失函数,比如平方误差、对数损失、Huber损失等,可以满足不同应用场景的需求。

可解释性强:XGBoost可以输出特征重要性排名,帮助人们理解模型的内部机制和信任模型预测结果。

XGBoost算法已经被广泛应用于数据挖掘、计算广告、推荐系统等领域,在Kaggle等各种机器学习竞赛中也取得了优异的成绩。

XGBoost的公式相对较为复杂,下面是一个简单的梯度提升算法的公式示例:

假设我们有一个回归问题,要求解决一个连续的目标变量y。我们需要构建一个回归树模型来预测目标变量。那么,我们可以采用如下的梯度提升算法公式:

初始化模型 f0(x) ,比如可以将 f0(x) 设置为 y 的平均值。

对于 t=1,2,⋯,T ,按照以下步骤进行:

计算负梯度

gtxi=-∂Lyi,ft-1xift-1xi                 (2-1)

拟合一个回归树模型 ht(x) ,使得

 ∑i=1nLyi,ft-1xi+htxi           (2-2)

最小化。

更新模型:

ft(x)=ft-1(x)+ηht(x)                  (2-3)

其中, 表示损失函数,比如平方误差、对数损失等;表示学习率,控制每一轮训练的权重,防止过拟合或欠拟合。这个公式描述了一个典型的梯度提升算法,XGBoost在此基础上进行了优化和改进,比如采用了加权损失函数、正则化技术等,提高了模型的泛化能力和预测准确率。

3 用户购买行为数据处理

3.1 数据介绍

由于爬虫爬取的数据集较大,所以采用数据库的方式展现数据集。

1.JData_User.csv用户数据集105321个用户

3.1  用户数据

User_id

用户ID

脱敏

Age

年龄段

-1表示未知

Sex

性别

0表示男,1表示女,2表示保密

User_iv_cd

用户等级

有顺序的级别枚举,越高级别数字越大

User_reg_tm

用户注册日期

粒度到天

2.JData_Product.csv预测商品集合24187条记录

3.2  商品数据

Sku_id

商品编号

脱敏

A1

属性1

枚举,-1表示未知

A2

属性2

枚举,-1表示未知

A3

属性3

枚举,-1表示未知

Cate

品类ID

脱敏

Brand

品牌ID

脱敏

3.JData_Comment.csv商品评论558,552条记录

3.3  评价数据

dt

截止时间

粒度到天

Sku_id

商品编号

脱敏

Comment_num

累计评论数分段

0表示无评论,1表示有1条评论,2表示有2-10条评论,3表示有11-50条评论,4表示大于50条评论。

Has_bad_comment

是否有差评

0表示无,1表示有

Bad_comment_rate

差评率

差评数占总评论数的比重

4.JData_Action 202102.csv 2月份行为交互记录11, 485, 424条记录

JData_Action 202103.csv 3月份行为交互记录25,916,378条记录

JData_Action 202104.csv 4月份行为交互记录13,199,934条记录

3.4  用户交互数据

User_id

用户编号

脱敏

Sku_id

商品编号

脱敏

Time

行为时间

Model_id

点击模块编号,如果是点击

脱敏

Type

1.浏览(指浏览商品详情页);

2.加入购物车;3.购物车删除;4.下单;5.关注;6.点击

Cate

品类ID

脱敏

Brand

品牌id

脱敏

3.2 数据处理

从两个方面来看,数据清洗一方面是为了解决数据质量问题,另一方面是为了使我们选择的数据更适合进行挖掘。对于这两种不同的目的,我们也会有相应的解决办法和办法。

该论文中数据挖掘流程如下所示:

(1)数据清洗

1.验证数据集完整性

2.验证数据集中是否存在缺失值

3.掌握如何处理数据集中的每个特征值的方法

4.判断哪些数据是我们想要的,哪些可以被过滤掉

5.判断完成后将有价值的数据信息转化为新的数据源

6.根据上面的结果删除与行为无关的产品和用户

7.删除具有大量观看次数但购买次数较低的用户,我们称之为惰性用户或爬虫用户

(2)对数据处理结果的理解和分析

1.前提是掌握每个功能的含义

2.观察数据的特征以及判断是否可以用于建模

3.通过图表的方式让结果直观显示,便于分析

4.考虑用户的购买意愿是否会随时间和其他因素而变化?

(3)特征工程

1.根据清理后的数据集,判断哪些功能数据是有价值的?

2.分别提取用户,产品和他们之间的行为的特征

3.评判行为的核心因素是什么?并考虑如何提取?

4.判断是瞬时行为特征还是累积行为特征?

(4)建立模型

1.使用机器学习算法进行预测

2.设定与调整参数

3.细分数据集

3.2.1解决数据质量问题

解决数据品质问题是针对数据中的不同种类的资料而提出的,其中包含但不局限于以下的资料。

(1)数据不完整,例如,缺乏与个人相关的性别、年龄、籍贯等特征

(2)数据的唯一性,例如,多个数据源都具有相同的重复性。

(3)数据的一致性,例如,不同来源的不同指数的真实意义是一样的,或相同指数的真实意义是不一样的。

(4)数据的正确性,例如,采集到的资料与一般人不符,年龄在150岁以上等等。

(5)数据的权威性,例如,具有不同数值的同一指标的多种来源的数据

数据清理就是对各类不合格数据进行适当的处理,从而得到用于数据统计、数据挖掘等工作的标准、洁净、连续的数据。针对以上种种问题,应采用多种方式、多种手段及相应的对策。每一个问题都有不同的情形,而且每一个情形都有不同的解决办法。

3.2.2数据集验证

对数据集进行验证,以应对数据的完整性:我们对不完全数据进行了三种处理:

(1)通过完成前后的数据(如缺少时间序列的数据),可利用前后的平均来完成前后的数据,并在缺失过多的情况下,可利用平滑处理。

(2)添加一些其它的信息,例如利用角色的身份证明号码,来计算出角色的性别、生日、年龄以及其他一些可能会出现的数据。

(3)对于经过以上两种方法处理后仍有缺失值的情况,尽管不完全,但也要将其剔除。对于这种情况,我们也可以采用直接删除的方式,但是在删除之后,我们可以重建一个新的数据集,并将其保存下来,以便于以后的查询和处理。

3.1数据集验证过程

3.2.3检查并去除重复记录

图3.2查重过程

图3.3 查重结果

对所有数据集的查重结果如上图所示,存在一部分的重复数据,但对于上图查询到的重复数据,我们的做法是不删除,保留原先的数据,重新创建没有重复数据的新数据集,然后在新的数据集上进行数据处理。

3.2.4数据清洗

# 之上统计数据发觉: 依据User_id统计分析,第一行发现105321个用户,3个用户并没有age和sex字段,但是根据访问、选购、删除、选购等记录,仅有105180个记录,表明用户并没有互动记录,所以可以删除以上用户。

# 删除没有age,sex字段的用户

# In[22]:

df_user[df_user['age'].isnull()]

# In[23]:

delete_list = df_user[df_user['age'].isnull()].index

df_user.drop(delete_list,axis=0,inplace=True)

# 删除无交互记录的用户

# In[25]:

#删除无交互记录的用户

df_naction = df_user[(df_user['browse_num'].isnull()) & (df_user['addcart_num'].isnull()) & (df_user['delcart_num'].isnull()) & (df_user['buy_num'].isnull()) & (df_user['favor_num'].isnull()) & (df_user['click_num'].isnull())]

df_user.drop(df_naction.index,axis=0,inplace=True)

print (len(df_user))

# 统计并删除无购买记录的用户

# In[27]:

#统计无购买记录的用户

df_bzero = df_user[df_user['buy_num']==0]

#输出购买数为0的总记录数

print (len(df_bzero))

# In[28]:

#删除无购买记录的用户

df_user = df_user[df_user['buy_num']!=0]

# In[29]:

df_user.describe()

# 删除爬虫及惰性用户

# 由上表所知,浏览购买转换比和点击购买转换比均值为0.018,0.030,因此这里认为浏览购买转换比和点击购买转换比小于0.0005的用户为惰性用户

# In[31]:

bindex = df_user[df_user['buy_browse_ratio']<0.0005].index

print (len(bindex))

df_user.drop(bindex,axis=0,inplace=True)

# In[32]:

cindex = df_user[df_user['buy_click_ratio']<0.0005].index

print (len(cindex))

df_user.drop(cindex,axis=0,inplace=True)

# In[33]:

df_user.describe()

# 最后这29070个用户为最终预测用户数据集

对于使用不同的处理方法可能会影响到最后的分析结果。因此,应确保数据的完整性,尽量避免调查中的无效值和缺失值的出现。用户对数据集的清理实际上是在过滤和解决无关信息和字段冗余的问题。对数据集进行用户清洗实际上是在筛选并解决无关信息和字段冗余问题,对这种问题的解决方法就是剔除该字段。因此选用整例删除的方法来处理数据集中无效值。

图3.4 用户清洗过程

图3.5 用户清洗结果

从上面的统计信息中可以发现:根据第一行的User_id统计,有105321个用户,发现有3个用户没有年龄和性别字段,并且基于所有数据集中浏览商品,加入购物车,删除,购买商品等信息的记录只有105180条,可以表示所有数据中存在用户没有任何交互记录的情况,因此这些用户在数据集中是无效值,我们可以从数据集中删除这些用户。

首先删除无交互记录的用户,其次统计,并且删除没有购买记录的用户,最后大量删除浏览但购买量很少的用户惰性用户或爬虫用户,最终筛选出的这29070个用户。我们最终筛选出的这29070个用户为我们接下来进行最终预测的用户数据集。

3.3数据分析

# 周一到周日每天购买用户个数

df_user = df_ac.groupby('time')['user_id'].nunique()

df_user = df_user.to_frame().reset_index()

df_user.columns = ['weekday', 'user_num']

# 周一到周日每天购买商品个数

df_item = df_ac.groupby('time')['sku_id'].nunique()

df_item = df_item.to_frame().reset_index()

df_item.columns = ['weekday', 'item_num']

# 周一到周日每天购买记录个数

df_ui = df_ac.groupby('time', as_index=False).size()

df_ui = df_ui.to_frame().reset_index()

df_ui.columns = ['weekday', 'user_item_num']

1.统计周一到周日各天购买情况将结果绘制成图表,如下图所示:

3.6一周购买情况统计图

对上述图表的结果进行分析:周二购买量相对较多,其次是周一和周四,出乎意料的是周六日的购买量较少。

2.一个月中各天购买量 

(1)2月

3.7二月购买情况统计图

分析:从图片中显而易见,2月份5、6、7、8、9、10日这几天购买量非常少,有可能是因为春节期间,快递放假,从而产生的影响。而14,15,16,17日每天购买量大幅提升。应该是春节假期过后,快递行业逐渐恢复运输,网购现象整体大幅度提升。在17日购买量到达二月份的顶峰之后,购买量没有了大幅度的变化,日渐趋于稳定。

(2)3月

3.8三月购买情况统计图

分析:从图片中显而易见,3月份中3月14,15,16号三天购买量有大幅度的变化,其中14号到15号,购买量激增,15号到16号购买量骤减,推测影响这种大幅度变化的原因可能是因为315是国际消费者权益日的原因。

(3)4月

3.9四月购买情况统计图

分析:从图片中我们显而易见,4月份总体购买量没有较大的幅度变化,除了其中的7、8、14、15日。在4月7,8,9号购买量有了明显提升,在14,15日,购买量有了大幅度的变化,从四月份购买量的整体来看,14号购买量最多。

1.周一到周日各商品类别销售情况

3.10一周商品售出情况统计图

分析:从图表中可以看出,星期四购买第四类的人数最多,星期六购买最低;第五类的采购在整体上并不大,星期一最多,星期天最少;第六类的采购整体上并不大,以星期一、星期四、星期五采购为主,星期天采购最少;星期二购买7类的人数最多,星期六和星期天购买最少;星期二购买分类8最多,星期日购买最低。

2.每月商品销售情况

3.11 二、三、四月商品售出情况统计图

分析:从上面的数据中我们可以看到,2月份类目8的商品的购货量整体偏低,而3、4月份的购货量整体偏高,并且在3月15号的购货量非常大,因此我们认为,造成这个巨大的变动的原因很可能是由于315是国际消费者权益日。您也可以对三个月的销售数据进行对比,并发现八类商品几乎占据了全部销售额的一半。三月与四月八类产品的销量在本月的前半月尤其类似,但4月8日,9月和3月15日外,3月和4月类别8除外。

3.4 特征工程

本次设计步骤如下:

  1. 获取基本的用户特征,基于用户本身属性多为类别特征的特点,对age,sex,usr_lv_cd进行独热编码操作,对于用户注册时间暂时不处理。
  2. 针对年龄的中文字符问题处理,首先是读入的时候编码,填充空值,然后将其数值化,最后独热编码,此外对于sex也进行了数值类型转换。
  3. 根据商品文件获取基本的特征,针对属性a1,a2,a3进行独热编码,商品类别和品牌直接作为特征。
  4. 不同时间累积的行为计数(3,5,7,10,15,21,30)
  5. 分组统计,用户-类别-商品,不同用户对不同类别下商品的行为计数
  6. 分组统计,用户-类别,不同用户对不同商品类别的行为计数
  7. 分组统计,用户不同日期的行为计算标准差
  8. 分组统计,按用户分组,统计用户各项行为的转化率、均值。
  9. 在上面针对用户进行累积特征提取的基础上,分别提取用户近一个月、近三天的特征,然后提取一个月内用户除去最近三天的行为占据一个月的行为的比重。

3.5 模型选择和训练

XGBoost的主要优点:

(1)简单易用:与其他机器学习库相比,用户可以轻松使用XGBoost并获得不错的结果。

(2)高效且可扩展:在处理大规模数据集时,速度快,效果好,对内存等硬件资源的要求不高。

(3)与深度学习模型相比,无需微调参数即可获得接近的结果。

(4)XGBoost在内部实现了增强的树模型,该模型可以自动处理缺失值。

XGBoost模型建立如下,其中x为用户id、商品编号、品类id。Y=预测购买量。

users = x_test[['user_id', 'sku_id', 'cate']].copy()

del x_test['user_id']

del x_test['sku_id']

x_test_DMatrix = xgb.DMatrix(x_test)

y_pred = bst.predict(x_test_DMatrix, ntree_limit=bst.best_ntree_limit)

# In[158]:

x_test['pred_label'] = y_pred

x_test.head()

# In[163]:

def label(column):

    if column['pred_label'] > 0.5:

        #rint ('yes')

        column['pred_label'] = 1

    else:

        column['pred_label'] = 0

    return column

x_test = x_test.apply(label,axis = 1)

x_test.head()       

def label(column):

    if column['pred_label'] > 0.5:

        #rint ('yes')

        column['pred_label'] = 1

    else:

        column['pred_label'] = 0

    return column

x_test = x_test.apply(label,axis = 1)

x_test.head()       

# In[165]:

x_test['true_label'] = y_test

x_test.head()

# In[166]:

#x_test users = x_test[['user_id', 'sku_id', 'cate']].copy()

x_test['user_id'] = users['user_id']

x_test['sku_id'] = users['sku_id']

x_test.head()

4 实验结果分析

本次实验旨在收集有关用户、商品和销售等方面的数据,并进行数据清洗和预处理。根据业务场景选择合适的特征并对其进行处理,例如特征提取、特征选择、特征转换等。将数据集划分为训练集和测试集,通常采用交叉验证的方法进行多次实验,以评估模型的性能。根据业务需求定义目标变量,例如是否购买某个商品或购买数量等。

选择XGBoost模型并设置相关参数,例如树的深度、学习率、子采样率等,并使用交叉验证等方法调整参数,以提高模型性能。使用训练集对模型进行训练,并对模型进行监控和调整,以避免过拟合或欠拟合的情况。将训练好的模型部署到实际应用中,并根据需求进行持续优化和更新,以提高预测准确率。

4.1 模型评价指标

4.1实验结果对比

模型

MSE

MAE

线性回归

6.79

3.8

岭回归

1

1.22

Lasso回归

6

2.312

从表4.1可以看出,三个类别模式在预测时,MSE差异较大,总体来看,岭回归模型表现较为良好,在计算时间上,岭回归法比其他两种方法的计算时间更短,是最快的,综上所述,其结果显示以基于岭模式所建构之预测模式具有最好效能。

(1))针对本论文所研究的电商用户的购买行为预测问题,建模时需要综合考虑问题的理解、数据的分析、关键特征的提取、训练集测试集的划分等因素,同时还会面临到样本不平衡的问题。由于样本容量偏差较大,使得模型中各参数的权值无法得到充分的训练,从而影响了模型的预报性能。通过对数据集的抽样,使其在训练集中和测试集中具有相同的正、负值,从而检验了该模型的有效性。而在真实环境下,如果正、负两个极端不平衡的数据集,将极大地影响到模型的识别效果。

(2)为防止“时间穿越”(也就是,模型把未来的信息作为一种特征从训练集中学习),也就是根据用户的过去的行为特性来预测将来的消费行为,训练集中和测试集中取自不同的时间段。这就意味着,如果有新的用户,没有任何的交集,那么,模型就不会学习到这一点,从而在预测的时候,会产生一定的错误。同时,在各时期内,本征资料的分布也存在着一定的差异。

(3)在建模和预测的过程中,噪音数据的存在对模型预测的效果有很大的影响,特别是对具有时态特征的数据分析问题。

4.2 模型预测效果分析

4.1预测结果

在此基础上,本文提出了一种基于线性回归的方法。将预测的头两个星期的数据加入到该模型中,就可以预测下一个星期的电子商务用户的购买量。通过对预测结果的输出,能够为电商平台和商家提供有效的信息,从而降低他们的营销成本,提高他们的经济效益。特别是,电商平台可以依据用户的行为规则,建立适合于大多数消费者的推荐体系。店铺可以以这些信息为依据,对自己的宣传计划进行调整,给那些购买意愿较低的电商用户发放优惠券等折扣,并以价格预测为依据,对自己的存货进行有效改善,以保证店内的货物供给等。

总结

本论文利用数据挖掘技术与机器学习算法,建立了用户购买商品的预测模型,得到了潜在用户与目标商品的对应关系,然后向特定的用户推荐其所需的目标商品,从而提高了销售质量。借助大数据技术,能够清晰地了解到各电商平台的用户的基本需求与意图,由此,电商平台能够基于此观点,预测出用户在未来一段时间内的购买意图。

电子商务平台可以通过大数据和历史数据,根据消费者的选购意向,预测商品购买量,并提前更新畅销商品库存。当采购量较大时,要提前做好各项物资的准备,避免发生缺货等状况;当采购量较少时,要及时调整各项物资的储备,避免造成不必要的损失。一般的电商平台,都会推出“猜你喜欢”这种推荐服务,然后根据用户的信息,为特定的用户推荐特定的产品,以获取最大化的利润。

网上消费是当前最为流行的一种消费方式,从当前人们的生活需求和生活习惯来看,在未来相当长的一段时间内,网上消费还将是主要的消费方式。电子商务的运作原则是掌握顾客的购物意向。同理,在分析分配与售后问题时,也可以使用回归分析法,其对消费者的作用也不容忽视。

参考文献

[1] 鞠雪楠, 欧阳日辉. 中国电子商务发展二十年: 阶段划分、典型特征与趋势研判[J]. 新经济导刊, 2019, (03):26-33.

[2] 苏鸣立. 1997-2019: 电商 22 周年发展历程及未来[J]. 计算机与网络, 2019, 45(19):8-10.

[3] 谭 超 颖 . 大 数 据 技 术 在 电 子 商 务 系 统 中 的 应 用 研 究 [J]. 无 线 互 联 科 技 , 2020,17(23):113-114.

[4] 任敏. 大数据个性化推荐分析[J]. 物联网技术, 2019, 9(11):62-64+67.

[5] Chen H . Personalized recommendation system of e-commerce based on big data analysis[J]. Journal of Interdisciplinary Mathematics, 2018, 21(5):1243-1247.

[6] Yang Ni hong, Chen Lei, Yuan Yu yu. An Improved Collaborative Filtering Recommendation Algorithm Based on Retroactive Inhibition Theory[J]. Applied Sciences, 2021, 11(2):843.

[7] 王健宗, 肖京, 朱星华,等. 联邦推荐系统的协同过滤冷启动解决方法[J]. 智能系统学报, 2021:1-9.

[8] Bansal Saumya, Baliyan Niyati. Bi-MARS: A Bi-clustering based Memetic Algorithm for Recommender Systems[J]. Applied Soft Computing, 2020, 97(PA) .

[9] 段海龙. 数据平衡与模型融合的用户购买行为预测研究[D]. 南昌大学, 2020.

[10] L. Tang, A. Wang, Z. Xu, et al. Online-purchasing behavior forecasting with a fireflyalgorithm-based SVM model considering shopping cart use[J]. Eurasia J Math Sci Technol Educ, 2017, 13(12):7967–7983.

[11] Qian Guo, Chun Yang, Shao qing Tian. Prediction of Purchase Intention among E-Commerce Platform Users Based on Big Data Analysis[J]. IIETA, 2020, 34(1):95-100.

[12] C. Ling, T. Zhang, Y. Chen. Customer purchase intent prediction under online multi-channel promotion: a feature-combined deep learning framework[J]. IEEE, 2019,7(8):112963-112976.

[13] 胡晓丽, 张会兵,等. 基于 CNN-LSTM 的用户购买行为预测模型[J]. 计算机应用与软件, 2020, 37(06):59-64.

[14] Huibing Zhang, Junchao Dong. Application of sample balance-based multi-perspective feature ensemble learning for prediction of user purchasing behaviors on mobile wireless network platforms[J]. EURASIP Journal on Wireless Communications and Networking, 2020,2020(1):148-154.

[15] 耿凌霄. 基于 MKSVM 的发酵过程动态建模方法研究及其应用[D]. 北京工业大学,2014.

[16] 李航. 统计学习方法 (第 2 版) [M]. 北京:清华大学出版社, 2019.

[17] 梁栋, 张兴. 信息论简明教程[M]. 北京:北京邮电大学出版社, 2009.

[18] 李梅. 信息论基础教程[M]. 北京:北京邮电大学出版社, 2005.

[19] 周志华. 机器学习 (第 1 版) [M]. 北京:清华大学出版社, 2021.

[20] Chen T, Guestrin C. 线性回归: A Scalable Tree Boosting System, 2021.

[21] Guolin Ke, Qi Meng, et.al. 岭回归: A Highly Efficient Gradient Boosting Decision Tree, 2017.

[22] 付红玉. 基于异源集成算法的用户购买行为预测研究[D]. 山东大学, 2020.

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值