全国大学生数据统计与分析竞赛2021年【本科组】-B题:基于 lightGBM +LR 的用户购买行为预测研究

摘 要

随着互联网的不断发展,为了判别高质量的用户、优化营销成本,进而提高用户转化率,
我们要根据用户的信息预测用户是否会下单。首先对所给数据进行数据预处理:验证数据完
整性、去重、缺失字段处理、噪声处理,将处理过的数据合并为新数据集。然后将新数据集
中的城市与登录信息利用 Matplotlib、Seaborn、Bokeh 库进行多种形式的可视化展示,关联
部分数据同时直观展现。然后将数据集划分成训练集和测试集,再进行主要特征提取进而进
行特征构建,对于训练集根据不同特征分类,采用 one-hot 独热编码,构造稀疏矩阵,完成
特征工程。采用 lightGBM+LR 双模型组合算法,首先用树模型 Lightgbm 来预测样本结果,然
后将树模型的结果转为标准的变量形式放入 LR 中,最终进行预测,模型达到了 99.8%的准确
率,同时使用 xgboost
catboost 算法评价模型的效果。最后根据所得到的数据信息分析总结 建 议 。

关键词:lightGBM LR xgboost catboost 随机森林分类 特征提取 是否下单 

一、问题重述

1.问题背景

随着互联网的不断发展,各个领域的公司都在拓展互联网获客渠道,为公司产品引入新
鲜活跃的用户,提高用户购买产品的欲望,提升公司的品牌影响力。这就需要我们对用户的
行为数据进行分析,判别用户价值,进而对用户制定专门的营销策略,实现小本促销,达到
判别高质量的用户和渠道、优化营销成本,进而达到提高用户转化率的目标。

2. 已有数据

用户信息表 (user_info.csv),用户登录情况表(login_day.csv),用户访问统计表
(visit_info.csv),用户下单表(result.csv)
字段说明:

3. 问题的提出

任务 1:获取数据并进行预处理,提高数据质量;
任务 2:对用户的各城市分布情况、登录情况进行分析,并分别将结果进行多种形式的
可视化展现;
任务 3:构建模型判断用户最终是否会下单购买或下单购买的概率,并将模型结果输出
为 csv 文件,要求模型的效果达到 85%以上;
任务 4:通过用户消费行为价值分析,给企业提出合理的建议。

二、预测目标

通过对用户行为数据的统计与分析,判断用户是否会对商品(体验课)进行下单购买。
可以将问题转换为机器学习中的二分类问题。分类目标可分为两类。数据中用 0 表示不会购
买,用 1 表示会购买。

三、数据预处理(任务一)

流程图
1.数据清洗 [1][3] :由于获取到的数据可能会存在缺失值和重复值等,在使用之前需要进行数据
预处理操作,提高数据质量。
(1)数据去重。即剔除原始数据中的重复数据。以处理用户数据为例,由于 user_id 可以唯
一标识用户的记录信息。所以可以通过该属性进行重复数据查找,将重复的数据去掉。按照
相同的思路重复对数据集进行去重操作。用户信息表 (user_info.csv),用户登录情况表
(login_day.csv),用户访问统计表(visit_info.csv),用户下单表(result.csv)中的user_id
均有大量重复数据,并对其进行处理。因为重复 user_id 的各种特征数值并不相同,所以可能
是在对用户进行标号时产生了差错或产生 user_id 的数据错乱异常。
(2)缺失字段处理 。我们采用随机森林回归填补缺失值的方法对原始数据中存在缺失字段的
数据进行处理。使用随机森林回归填补缺失值任何回归都是从特征矩阵中学习,然后求解连
续型标签 y 的过程,之所以能够实现这个过程,是因为回归算法认为,特征矩阵和标签之前
存在着某种联系。实际上,标签和特征是可以相互转换的,比如说,在一个“用地区,环境,
附近学校数量”预测“房价”的问题中,我们既可以用“地区”,“环境”,“附近学校数
量”的数据来预测“房价”,也可以反过来,用“环境”,“附近学校数量”和“房价”来
预测“地区”。而回归填补缺失值,正是利用了这种思想。下面是核心算法:
以 处 理 用 户 信 息 数 据 为 例 , 通 过 对 用 户 信 息 进 行 数 据 分 析 , 发 现 在 用 户 信 息 表
(user_info.csv)的表格中,有许多用户城市一栏的数据缺失,数据缺失的的原因可能是由于
采样异常或者用户信息未完善所导致,所以对其填充 0(表示未知),并在第二问对用户所
在城市分布情况进行可视化展示时不予考虑。
(3)噪声数据处理 。即对数据中非法数据及异常数据进行去除。本次数据集的研究是为了根
据用户信息预测用户是否下单购买,对所给数据进行分析,对不属于本次预测范围的数据进
行检索。通过数据检索,除重复 user_id 之外,未发现异常数据。
2. 将处理好的四个表格取交集,并整合成新的数据源。
部分表格示例如图所示,详情见附录

四、数据可视化(任务二)

为了对数据有更为直观的认识,对数据进行必要的探索分析,方便进行下一阶段的挖掘
研究。结合用户的基本信息,对用户的各城市分布情况、登录情况进行统计分析。

1. 用户所在城市分布情况

从表格中提取信息并进行分词处理,根据其城市词频制作词云图:
由图可以看出,用户大多来自于重庆,成都,运城等城市,为了更直观展现数据,根据其
城市划分和城市分布的比例绘制地图,颜色越深代表该省用户越多。
由此图可以看出,用户密集区域有重庆四川一带,华北地区,珠三角地区。

2.用户登录情况

①结合用户的基本信息,对用户登录天数进行统计,得到如图 4-3 的饼图:

 

从图中可以看出大部分用户登录天数在 1-7 天之间,在 2-6 天的用户占比在 60%左右,登
录七天以上的用户不足 20%。
②提取用户登录间隔制作面积图:
色块所占面积越大,说明这种时间间隔出现的越频繁,所以大部分用户的登录间隔在 0-1
之间,可见用户的登录情况比较良好。
③提取用户登录天数于最后登录距期末间隔数据,制作图表:
可以看出用户最后登录时间分布集中在数个区域,并逐渐呈现下降趋势,最后升高。
④提取用户加群与添加销售好友的数据,对比计数,结果如下:
由表可以看出,进群的用户都添加了销售好友,没进群的用户都没有添加。
⑤提取用户关注公众号 1 和关注公众号 2 的数据,制作柱状图:
由柱状图可以看出添加公众号 1 的人数明显多于关注公众号 2,可以理解为用户对于汉语
课程的重视程度要远高于数学。
⑥提取用户领取优惠劵数量的数据制作饼图:
从图中可以发现:高达 90%的用户没有领取优惠券,部分领取用户有极少数领取了大量优
惠券
⑦提取用户学习课程数与完成课程数,制作图表:
黄色曲线代表完成课程的用户数量,蓝色柱状图标识用学习课程的用户数量,轴表示课程
数,蓝色黄色图像重合程度越高,说明用户对于课程的完成程度越好,由图表可以直观反
应出,当用户学习的课程数较多时,用户对于课程完成程度较好,学习课程数少,课程完
成程度也低。
⑧提取用户学习课程与重复学习课程的数据,制作图表:
黄色表示学习课程,蓝色表示复习课程,当蓝色柱越高,表明再该学习课程数下,复习的
比例越高,由图,用户学习课程数越高,用户复习课程的比例也就越大,当用户学习课程
少时,用户很少复习课程。

五、特征构造

1. 特征选择

[1] 特征构造指的是从原始数据构造新特征的处理过程,一般需要根据业务分析,生成能
更好体现业务特性的新特征,这些新特征要与目标关系紧密,能提升模型表现或更好地解释
模型。特征构造需要花费大量的时间思考业务逻辑与探索业务数据,因此,往往需要手工创
建。由于业务的多样性,以及人们认知业务逻辑的差异性,因此特征构造也相应地具备灵活
性与艺术性的特点。
我们为用户的各种数据构造新的特征,目的是为了预测用户是否会下单购买,而数据集
当中的特征并不都是“平等”的,许多与问题无关的特征需要被移除掉,有些特征则对模型
表现影响很大,应当被保留,因此需要对特征进行一定的选择。特征选择方法可以分为过滤
法、包装法和集成法。在这里我们选择集成法。
有一些模型算法天然就具备判断一个特征对于模型的效果影响程度,例如决策树类的模
型,在模型训练过程中就需要融合特征选择的功能,因此,如果能通过这类模型计算出一个
综合的特征重要性排序,则可以用于特征的选择。这样的方法被称为集成法。例如使用随机
森林进行建模,模型会通过计算,返回一个代表特征重要性的数组,示例如下:
5-1 特征相关性
在结果中,选择重要性高的的特征进入模型就可以了。当然,如果特征比较多,可以采
用一些方便手段,例如使用 SelectFromModel SelectFromModel 需要传入一个可以产生特征
重要性的模型,以及特征筛选的阈值,同样也能够产生特征选择的掩码。使用随机森林这类
树模型,计算效率较高,可以在建模初期对变量进行初步筛选,之后往往还需要手动进一步
的细筛特征,因此可以适当多保留一些特征,集成法的主要作用就是为了在初期减少人工工
作量。

2. 特征构建

特征选择后,可以从用户信息、登录信息、行为信息几个方面来完成特征的构建。
(1)用户信息特征:
包括年龄,所在城市等
(2)登录信息特征
包括登录天数、登陆时长、再次访问间隔、最后登录距离期末天数等
(3)行为信息特征
包括点击模块访问数、宝宝访问数、点击分享访问数、首页广告弹窗点击访
问数等
其中 APP 激活、关注公众号 1,2、添加销售好友、进群、课程重复学习等可以直接作为
特征向量,而领券数量、开课数、登录天数、登录间隔等不能直接作为特征向量,所以
要对其进行独热编码。

 

本例中计算是简化处理。从处理方法上看,特征构造仍然是对数据的变换,其目的在于
将业务专家的经验和智慧融入到分析中。而在数据预处理当中也需要做一些基本的数据变换,
但预处理当中的数据变换更多是为了满足模型对训练数据类型、格式的基本要求。

六、模型的建立与求解 (任务三)

流程图
在特征工程流程结束后,就可以基于预测算法构建用户购买行为预测模型,并根据模型
输出的预测结果对模型进行评估。这里我们采用 lightGBM+LR [2] 的组合算法,这种组合模型的
预测效果要比单模型要好。

 首先用树模型 Lightgbm 来预测样本结果,然后将树模型的结果转为标准的变量形式放入 LR

6.1 原理:

6.1.1lightGBM [4]

提升树是利用加模型与前向分布算法实现学习的优化过程,它有一些高
效实现,如 XGBoost, pGBRT,GBDT(Gradient Boosting Decision Tree)等。其中 GBDT 采用
负梯度作为划分的指标(信息增益),XGBoost 则利用到二阶导数。他们共同的不足是,计
算信息增益需要扫描所有样本,从而找到最优划分点。在面对大量数据或者特征维度很高时,
它们的效率和扩展性很难使人满意。解决这个问题的直接方法就是减少特征量和数据量而且
不影响精确度,有部分工作根据数据权重采样来加速 booisting 的过程,但由于 GBDT 没有样
本权重不能应用。结合使用 GOSS 和 EFB 的 GBDT 算法就是 LightGBM。微软开源的LightGBM
(基于 GBDT 的)则很好的解决这些问题,它主要 包含两个算法:
(1)单边梯度采样,Gradient-based One-Side Sampling(GOSS)
流程:输入:训练数据,迭代步数 d,大梯度数据的采样率 a,小梯度数据的采样率 b,损失
函数和若学习器的类型(一般为决策树);
输出:训练好的强学习器;
(2)互斥特征绑定,Exclusive Feature Bundling(EFB) EBF 的算法步骤如下:
①将特征按照非零值的个数进行排序
②计算不同特征之间的冲突比率
③遍历每个特征并尝试合并特征,使冲突比率最小化
④高位的数据通常是稀疏的,这种稀疏性启发我们设计一种无损地方法来减少特征的维度。
特别的,稀疏特征空间中,许多特征是互斥的,例如他们从不同时为非零值。我们可以绑定
互斥的特征为单一特征,通过仔细设计特征臊面算法,我们从特征捆绑中构建了与单个特征
相同的特征直方图。这种方式的间直方图时间复杂度从 O(#data * #feature)降到 O(#data *
#bundle),由于#bundle << # feature,我们能够极大地加速 GBDT 的训练过程而且损失精度。
LightGBM 处理分类特征大致流程:
为了解决 one-hot 编码处理类别特征的不足。LightGBM 采用了 Many vs many 的切分方
式,实现了类别特征的最优切分。用 LightGBM 可以直接输入类别特征,并产生上图右边的效
果。在 1 个 k 维的类别特征中寻找最优切分,朴素的枚举算法的复杂度是 O(2k),而 LightGBM
采用了如 On Grouping For Maximum Homogeneity 的方法实现了 O(klogk)的算法。
算法流程下图所示:在枚举分割点之前,先把直方图按每个类别的均值进行排序;然后按照
均值的结果依次枚举最优分割点。从下图可以看到,Sum(y)/Count(y)为类别的均值。当然,
这个方法很容易过拟合,所以在 LGBM 中加入了很多对这个方法的约束和正则化。
离散特征建立直方图的过程:统计该特征下每一种离散值出现的次数,并从高到低排序,

 

并过滤掉出现次数较少的特征值, 然后为每一个特征值,建立一个 bin 容器, 对于在 bin 容
器内出现次数较少的特征值直接过滤掉,不建立 bin 容器。

6.1.2LR [2]

LR 模型可以被认为就是一个被 Sigmoid 函数(logistic 方程)所归一化后的
线性回归模型。逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用
了一个逻辑函数。
直观表述:
(2)式就是我们介绍的线性回归的假设函数,那(2)式就是我们的 Sigmoid 函数。由于线

 

性回归在整个实数域内敏感度一致,而分类范围,需要在 [0,1] 。逻辑回归就是一种减小预测
范围,将预测值限定为 [0,1] 间的一种回归模型,其回归方程与回归曲线如下图所示。逻辑曲

 

6.1.3 lightGBM+LR [2]

简单来说就是首先用树模型(GBDT、Xgboost、Lightgbm)来预测样
本结果,然后将树模型的结果转为标准的变量形式放入 LR 中,最终进行预测。
·具有 stacking 思想的二分类器模型, lightGBM 用来对训练集提取特征作为新的训练输入
数据,LR 作为新训练输入数据的分类器。
· lightGBM 算法的特点正好可以用来发掘有区分度的特征、特征组合,减少特征工程中人力
成本。而 LR 则可以快速实现算法

6.1.4SMOTE(Synthetic Minority Oversampling Technique):

合成少数类过采样技术.它是基于随机过采样算法的一种改进方案,由于随机过采样采
取简单复制样本的策略来增加少数类样本,这样容易产生模型过拟合的问题,即使得模型学
习到的信息过于特别(Specific)而不够泛化(General),SMOTE 算法的基本思想是对少数类样
本进行分析并根据少数类样本人工合成新样本添加到数据集中,具体如下图所示,算法流程
如下。
(1)对于少数类中每一个样本 x,以欧氏距离为标准计算它到少数类样本集中所有样本
的距离,得到其 k 近邻。
(2)根据样本不平衡比例设置一个采样比例以确定采样倍率 N,对于每一个少数类样本
x,从其 k 近邻中随机选择若干个样本,假设选择的近邻为 o。
(3)对于每一个随机选出的近邻 o,分别与原样本按照公式 o(new)=o+rand(0,1)*(x-o)
构建新的样本。

6.2.1 数据的准备及特征选择

1.导入机器学习相关库

 2. 数据查看以及处理连续型类别特征

 

 

3. 数据信息展示 

 

 

4.数据型特征分为连续型与类别型

 

5.查看数据的分布情况
是否符合正态分布,绘制无界约翰逊分布,正态分布图,判断是否进行分箱操作

 

6.统计 value

 

7. 相关性热图分析

 

6.2.2 划分训练集与测试集

1. 对数据进行上采样
数据标签分布不均匀,对数据进行上采样,避免学习偏差过大

 

6.2.3.模型训练与评估

1.模型训练
图 6-12 模型训练

 

2.算法尝试
图中依次为xgboost,lightgbm与catboost模型,最终基于模型效果与训练时间采用lightgbm

 

3.训练过程

 

4.训练结果

 

5.结果保存

 

6.2.4 评测指标

 

七、模型检验

将模型相关参数调制后达到较优程度,AUC 分数已达 99.8%。模型较好。

八、分析与建议(任务四)

1.基于用户的城市省份分布和词云图,大量用户集中再重庆四川,华北地区,广东福建地区,

 

可以在这些区域加大销售人员的投入,和用户进行更多沟通,在这些地区多进行一些相关商
业活动,将更多潜在用户转变为下单用户。
2.基于登录天数分布图,大部分用户的登录天数在在 1-7 天,商家可以设立签到奖励模式,
促进用户连续登录,同时在新用户在前七天筹备一些足以吸引用户购买的活动和政策,在前
七天充分展现课程的优势。
3.基于用户登录距离期末时间图,可以看出用户的最后登录距离期末呈现一定周期性,可以
在淡季用不同策略吸引用户,同时加入一些老用户回归的奖励,吸引更多用户回归。
4.基于用户添加公众号情况图,用户对于语文的关注程度明显大于数学,可以重点建设语文
课程,用高质量的语文课程再带动其他课程。
5.基于用户领取优惠券情况图,大部分用户没有领取优惠券,少量用户领取了大量优惠券,
可以加大推广,让更多用户可以从不同渠道获取优惠券,以吸引用户。
6.基于用户课程完成情况与用户学习课程情况图,用户进行的课程增加时,用户对于课程的
完成程度很高,可以设立连续完成课程的任务机制,促进用户学习课程深入,以此带动用户
更好的完成课程。
7.基于用户学习课程情况与课程复习情况,用户完成课程较多时,其复习的比例也会增加,
商家可以制定合适的机制引导用户深入学习课程,用户的复习情况就随之增加,课程的口碑
也随之变好

 九、参考文献

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格图素书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值