网络客户购物行为与关联规则研究 数学建模及Python代码 (Part1)

在开始前想说的话:来自2019年5月学校研究生数学建模赛题,查找资料后发现,一部分是天池某一年的题目和数据,剩下的则是学校某位老师研究过的题目。虽然比赛已经过去了几个月的时间,但回想起和同伴并肩作战的4天,觉得不记录下来有点可惜,同时感谢队友,感恩互相支持互相鼓励的时光。本博客不是最终论文的呈现,结构和叙述上会随意些。


问题重述

这部分就直接将原题呈现了。

背景1

随着网络信息技术的迅速发展与移动终端设备的普及,移动商务得到了前所未有的发展。在网上商城,每天都会有数千万的用户通过品牌发现自己喜欢的商品,品牌是联接消费者与商品最重要的纽带。赛题的任务就是根据用户4个月在网上商城的行为日志,建立用户的品牌偏好,并预测他们在将来一个月内对品牌下商品的购买行为。

背景2

随着经济社会的发展和数据收集存储技术的进步,各个行业和领域积累了大量的数据。为了在这些数据中获取有价值的信息,数据挖掘技术越来越受到研究者们的重视。关联规则挖掘是数据挖掘领域一项非常关键的技术,目前在许多领域都有着不同程度的应用。关联规则算法可以产生大量的规则,但是由于资源有限,只能有一部分的规则可能被决策者采用。因此,关联规则的兴趣度评价对关联规则挖掘技术的实际应用有着重要的意义。
关联规则的兴趣度度量的研究在近几年出现了不少的成果。兴趣度的度量研究主要包括客观度量和主观度量两个方面。客观兴趣度主要是考虑客观数据的统计显著性特征,有比较经典的支持度、置信度和提升度等,也有比较新的匹配度、信任度、改善度和影响度等。在客观兴趣度研究方面无论是经典的理论还是比较新的研究都还存在一定的局限性。主观兴趣度主要是涉及主体(用户)的领域知识、爱好等个性特征。相对客观兴趣度的研究,主观兴趣度的研究就比较少,而且相对不成熟。如何挖掘用户真正感兴趣的有效的关联规则是研究者们共同的目标。
目前许多关联规则还存在以下缺陷:(1)很多传统的关联方法会产生大量的规则,而其中含有许多不相关的甚至是错误的规则;(2)目前随网上交易量的剧增,网上交易数据和用户评价数据可以说极端稀疏(即稀疏性问题)。(3)支持度-置信度阈值过低,会产生组合爆炸问题,但是对于数据稀疏性问题,低支持度的规则可能会提供一些用户感兴趣的新知识。
问题:
(1)根据背景1,和附件1数据,构建相应的预测模型,给出说明解释。并用所建立的模型和本题数据预测下个月的购买行为,以及构建评价体系。
(2)是否需要其他用户属性来预测用户网络行为,请你构建新的用户模型来预测网上消费者的行为和偏好(提示,有些属性可以在淘宝网、天猫或者其他电商上寻求,也可以自己设想,如果是自己设想的,要提供可操作的获取方法)。
(3)根据背景2,和附件2给的信息,建模分析,比较各种传统关联规则评价的方法(优缺点),主要包括支持度、置信度、提升度、有效度(Val.)、改善度(Imp.)、影响度(Inf.)等度量指标。
(4) 你有更好的关联规则评价方法吗?你可以提出新的方法或者对传统方法的改进,并结合数据分析比较优缺点。
(5) 支持度-置信度度量框架是传统的经典的关联规则评价度量框架,但是有缺陷,你可以对其建模改进吗?
补充:附件里的数据说明

字 段 字段说明 提取说明
user_id 用户标记 抽样&字段加密
Time 行为时间 精度到天级别&隐藏年份
action_type 用户对品牌的行为类型 包括点击、收藏、加入购物车、购买4种行为 (点击:0收藏:1 购物车:2购买:3)
brand_id 品牌数字ID 抽样&字段加密

用户对任意商品的行为都会映射为一行数据。其中所有商品ID都已汇总为商品对应的品牌ID。用户和品牌都分别做了一定程度的数据抽样,且数字ID都做了加密。所有行为的时间都精确到天级别(隐藏年份)。

简单的分析
很明显,题目可以分成两个部分,第一部分是预测,第二部分是关联规则。比赛的时候我们也是这样去做的。下面按照问题的次序来写。

问题一

问题一的分析

问题一是根据网购行为分析及附件数据,构建用户购买预测的二分类问题;同时建立用户购买行为的评价体系。我们首先分析用户网购行为的影响因素,构建适当的评价体系,反映用户的网购行为。再选取所构建的指标特征中可量化、与附件数据相关的指标,作为用户购买预测模型的特征。
查阅资料可知,用户购买行为会受到产品信息、需求存在、解决意愿等三方面影响,从而产生品牌购买行为,即这三方面可以充分反映一个用户是否会对某个品牌的商品产生购买行为。根据相关的电商运营指标可以反映这三方面的特性,最终的指标也依据此挑选。
我们使用预测前一周期的数据对该周期内的购买行为进行预测。

评价体系

从理论上来说,要从哪些方面找到某些指标可以很好的判别,但是实际上数据集里面没有这么多指标,而且指标数量也很少,还需要自己算出新指标。所以最重要的事情就是确定好怎样用现有的数据来获得更多的有用信息。
查阅资料,用户购买行为可由产品信息、需求存在、解决意愿衡量。其中产品信息是指该品牌所的基本信息,包括品牌自身热度、品牌质量、品牌定位等内容;需求存在是指用户自身的一些特性,包括用户本身的购买欲望、品牌点击率、用户自身的购买活跃度等;解决意愿是指用户对于具体品牌的购买决策。
最终根据查到的资料,以及队友间的讨论,确定了以下评价指标体系。
用户购买行为评价体系

相对应的指标选取如下:

  • 解决意愿
    • 用户-品牌购买率
    • 用户-品牌访问品牌率
    • 用户-品牌的操作行为
    • 用户转化率
  • 产品信息
    • 品牌的操作行为
    • 品牌操作总数
    • 品牌转化率
    • 品牌销量
  • 需求存在
    • 用户操作行为
    • 用户操作总数
    • 用户活跃天数比
    • 用户-品牌的操作总数
    • 用户购买天数比

建模与求解

所有的代码都附在最后,这部分只写文字分析。

Logistic回归

Logistic回归是非常经典的模型。建模的时候以30天为一个周期,用前一个周期来预测下一个周期内的购买情况。
直接用Python的sklearn进行建模,设置参数solver=‘liblinear’,C=0.1。
可得到在测试集上的 F 1 F1 F1得分为0.059574468,precision为0.114754098、recall为0.040229885、accuracy为0.98700841。

在数据集中,几乎所有的记录是没有购买的,准确率accuracy的参考性不是特别高,因为即使把所有的项目都预测为不购买,也可以获得95%以上的准确率。此时,召回率recall的高低就显得更加重要了。召回率意味着在所有真的购买的记录里预测出要购买的比例,从商家的角度来说,当然是可能购买商品的客户才是需要被重点关注的。所以Logistic回归的效果不是特别好。当然,参数是调过的,只是差别都不太大,选取了其中一条来写而已。

GBDT

Logistic回归对于非线性可分的分类会存在较大误差,由于用户分类间可能不存在一个超平面将用户购买行为进行较好的划分。考虑用GBDT来建模来获得更好的效果。GBDT是树类模型,很适合进行分类问题。

对于GBDT来说,先从迭代次数(n_estimators)和步长(learning rate)开始调节。先选择一个较小的步长(这里选择0。3),再开始调节迭代次数,确定当迭代次数为1200时,效果最好。再调节最大深度max_depth和最小样本划分min_samples_split。确定最大深度为3,最小样本划分为6。接下来对内部节点再划分所需最小样本数min_samples_split和叶子节点最少样本数min_sample_leaf进行调节࿰

  • 0
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值