Python野蛮时代手游氪金行为预测

野蛮时代手游氪金行为预测

【摘要】 《野蛮时代》(Brutal Age)是一款风靡全球的SLG类型手机游戏。tap4fun在DataCastle主办了一场数据科学的预测大赛,本次大赛邀请参赛者利用《野蛮时代》游戏玩家在游戏内前7日的行为数据(都是真实玩家数据哦),预测玩家在未来45日内的付费总金额。本文通过对野蛮时代数据进行分析,预测出来玩家在未来45日内的付费总金额,通过这个项目对数据分析有更深的认识。
【关键词】 python,数据分析,野蛮时代

第1章 项目背景与建模目标

本项目是针对SLG手游《野蛮时代》(Brutal Age)用户行为数据的付费预测。数据来源于DC竞赛第二届智慧中国杯(ICC)。该数据集为2018年1月26日-3月06日注册用户的游戏数据,项目的分析目标是利用玩家在游戏内前7日的行为数据,预测他们每个人在45日内的付费总金额。

第2章 数据探索

2.1 数据集解释

该数据来源于DC竞赛第二届智慧中国杯(ICC)。数据规模为2288007 ×109。数据集的字段主要是:用户信息类:玩家ID,注册时间,在线时长,付费金额,付费次数,45日付费金额;游戏资源类;建筑类等级,科研类等级等等。

2.2 数据正确性探索

数据集 玩家唯一ID 列无重复,所有的资源/人物等级/胜利次数/金额等没有负数,删除上线时间较短,资源量异常丰富的记录1条

2.3 数据质量探索

经检验,数据无缺失值和重复值

2.4 数据类型探索

该数据集有1列数据是对象类型,即注册时间。有95列数据类型都为整数。从游戏业务的独特性、以及特征含义来看,资源数量/等级/发起PVP次数等信息一般不会以浮点数表示,因此显示为整数也十分正常。从特征含义来看,该数据集中没有任何离散型特征。
2.5查看分布和统计信息

该数据集右偏程度过高,玩家流失情况可能很严重。高度偏态的信息不利于异常值检测,可以预见大量的长尾数据会被归为异常值,需要谨慎处理异常值。

2.6 用户类型分析

2.6.1 根据在线时长分析用户类型

75%的人在前7日一共只玩了4.8分钟或以下,这说明75%的用户连新手任务都没过完就被劝退了。用户以超出常规的方式流失。

2.6.2 付费用户的在线时长分析

只有25%以下的付费用户在线时间在半小时以下,付费用户的游戏时间明显比非付费用户多了很多

2.6.3 在线时长很少的玩家们贡献的金额

不难发现,在线时长很少的玩家们贡献的氪金数额都很少。可以将一周在线时长不足20分钟的用户判断为(付费层面)低价值用户。

2.6.4 用户活跃类型

定义7日内在线时长≥20分钟的用户为活跃用户

尽管7日内新注册人数高达228W+,但是不活跃的用户就占了92%,说明游戏运营活动吸引的新用户质量不高。

2.7 流失分析

针对不活跃用户行为数据进行深入分析,在线时长为0分钟的用户占总注册人数的1.87%,而要塞0级的用户占总注册人数的41.10%。在线为0分钟的可认为该游戏玩家仅仅只是注册账号,之后就没有进入游戏。玩家进入游戏后,会有长达半分钟左右的剧情动画(可跳过),如果玩家通过新手剧情动画开始游戏,要塞就会设定为1级。

付费率为22.6%较高,虽然付费人数不多,但是大R玩家的付费能力相对较强。从前5000高氪用户
金额占比来看,45日时全服氪金前5000的人(z占比小于0.22%)提供了全服89%的收入,贡献巨大。
39.23%的注册用户在进入游戏后没有过完新手剧情(要塞为0级,注册后7日内在线时间>0)

分析与建议:
1、玩家在看新手剧情动画中就退出了游戏,没有过完新手剧情动画。说明用户对游戏的UI设计/游戏风格、画风不感兴趣,引流用户不适合游戏定位,建议①对游戏内的活跃用户进行用户画像再据此画像精准渠道投放,优化广告内容,获得目标用户;②优化动画,提升新手玩家的吸引力,让玩家感受到游戏乐趣。
2、渠道推广为提高用户注册转化率,购买了僵尸账号,用户注册登录完游戏后就永久退出游戏。建议找到7日内每日留存率下降明显异常日期,进而对比该日各个渠道的留存率和用户画像寻找原因。
50.88%的注册用户在过完新手剧情后处于低活跃状态(要塞等级>0,注册后7日内在线时间低于20分钟):

数据右偏严重,90%的玩家7天在线时长不超过10分钟就退出了游戏。过完新手动画后,新手任务每章都有升级要塞等级的核心任务。

25.6%的该类型流失用户连新手任务第一章的任务都没有做完就退出了,根据游戏试玩,在要塞等级5级及之前,游戏每章任务很少且非常容易完成,所有的升级资源和道具都是充足的,玩家按照引导步骤一直点击升级按钮和完成领取按钮以及过一些剧情介绍即可。但是89.2%的该类型流失玩家的要塞等级在没有达到6级的时候就退出了游戏。

分析与建议:
1.游戏新手任务简单但繁琐,没有趣味性,不够有吸引力,应该优化新手任务中升级和领取奖励的互动机制,减少前期无趣的重复点击次数,增加新手任务的趣味性。在新手任务前期增加伙伴抽取,冒险战斗等有吸引力的任务占比。
2.对游戏内的活跃用户进行用户画像再据此画像精准渠道投放获得目标用户

2.8标签探索—付费情况分析

2.8.1 7日内与45日内注册用户付费情况分析

45日内全服付费转化率为2.01%,7日内全服付费转化率为1.81%。整体来看付费转化率是偏低的。且7-45新增付费人数占比过低。

2.8.2 7日内付过费用户的后续付费情况

7日后的付费情况

7日之前付过费,并且7日之后再也没有付费的用户有3万多人,占到前7天总付费用户的72%。即一个新玩家在服前七天有付费,但在未来一个月还是有7成的概率不再继续氪金。
可能的原因有:
1、新手礼包力度过大,导致后续礼包中的福利看起来不够实惠,用户再付费门槛较高,后续礼包中的福利以及价格超出了大部分付费用户对游戏付费的心理预期。
2、游戏本身粘性不足,无论用户是否付费,大部分人都在7-45日内自然流失了(甚至在前7日就流失了大部分),通过之前的流失分析,已经得出了92%的用户在注册后7日内在线时长<20分钟,可以认为在前7日已经流失。

2.8.3 上述玩家前7日的消费对比

非常明显,7日后继续付费的玩家在前7日会氪更多的金额,7日后不再付费的玩家中有75%都只氪了6元以下的金额,而7日后继续付费的玩家中有50%以上都氪了16元左右,这极大地印证了第一条原因:
大部分付费用户只购买了新手礼包,而后续礼包的价格在大部分人的心理预期之外。同时,7日后不再付费的玩家中也有不少氪过百过千的玩家,最终放弃游戏可能是因为自然流失/氪金后体验不足以满足部分用户的想象。
从7日后继续付费的用户氪金情况来看,这些用户是倾向于越氪越多的,因此这些用户对于氪金后的感受应该是满意的。

2.8.4 付费层面高价值用户评判

根据历史数据,当用户7日内氪的金额越大,用户对氪金的心理预期越高,继续氪金的可能性就越大,不再氪金的可能性就越小。因此,存在一个金额点,当用户在前7日内付费的金额超过该金额点时,
该用户继续氪金的可能性大于不再氪金的可能性

在前7日内付费5.7元以下的用户,无论是否自然流失,未来氪金的可能性都是小于继续付费的可能性的。可以通过设置游戏体验,给与付费5元左右的用户更多的"刺激",让用户后续继续付费。也可选择直接放弃维系5.7元以下的付费用户,体验维持现状,让更多的服务和活动方向围绕更有可能付费的用户展开。

2.9 注册时间与付费

将时间分成日期和时刻来考虑,分别绘制横坐标为注册日期/注册时刻、纵坐标为该日期/该时刻注册用户氪金均值的关系图,以此来观察注册日期/时刻与氪金是否有关。

2.9.1 不同注册日期的用户氪金均值

2.9.2 不同注册日期的用户付费总额与玩家注册数量

从上图来看,2018-02-19(春节期间)新注册玩家数量激增,且高峰的持续时间很短,可能是因为公司对游戏的推广取得了效果进而使注册用户激增。从游戏运营方的微博来看,春节期间运营方在游戏中开展了一系列活动,包括舞狮活动、酋长参战、跨服战、爆竹活动等,这些活动和春节效应叠加,带来了注册人数的增加,出现峰值。但大量的新增注册用户并没有给转化情况带来明显改善。

2.9.3 不同注册时刻(小时)的用户氪金均值

早上10点-12点之间注册的用户、以及下午4点-5点之间表现出比其他时段注册的用户更高的氪金能力。

相关系数:

看起来注册时刻与付费金额有一点点关系(非常微弱),可以保留注册时刻为建模用。

第3章 数据预处理与特征工程

3.1 特征修改

增加’玩家注册时刻(小时)'列,删除玩家ID列 删除玩家注册时间 列,不是有助于建模的特征。

3.2 模型选择与benchmark

在现有数据量的要求下,首先要考虑计算迅速且简单的线性模型:线性回归。

建立benchmark

训练集上的 (Xtrain,Ytrain)

0.5604160157526339

测试集上的 (Xtest,Ytest)

0.5581998030190463

模型处于欠拟合状态——在训练集和测试集的分数上都不是很高,并且两者分数相近,简单的线性模型

在学习能力上略显不足。

3.3 根据业务模式新增特征

1、PVP胜率=PVP胜利次数/PVP次数,无PVP的用户胜率为0
2、主动发起PVP的概率=主动发起PVP次数/PVP次数,无PVP的用户主动发起为0
3、玩家发育效率=平均资源获取数/在线时长
4、玩家升级效率=技能的平均等级/在线时长
5、氪金发育效率=平均资源获取数/7日付费金额
6、氪金升级效率=技能的平均等级/7日付费金额
7、象牙消耗率= 象牙消耗数量/象牙获取数量
8、科研加速使用率= 科研加速使用数量/科研加速获取数量
9、训练加速使用率 = 训练加速使用数量/训练加速获取数量

修改除0错误与极值错误。
在游戏中的特征与付费的相关分析时,得出了一些关键结论:
1、如果用户7日内付费≥5.7元,则在7日后继续付费的概率大于不再付费的概率,是高价值氪金用户。
2、当用户的在线时间≥20分钟,用户对氪金金额的贡献率较高,是活跃用户。
3、PVP胜率>50%的用户是高胜率用户。
4、要塞等级≥10,是高价值用户基于这些发现,统—让低价值用户被标记为0,高价值用户被标记为1,为特征矩阵创造新特征。
4、相关性分析:筛选特征/特征重要性
只考虑特征与标签之间的相关性,不考虑特征与特征之间的相关性带来的统计学方面的问题。只有两个特征的相关系数低于0.01,可以考虑都统一保留这些特征。
5、训练集、测试集分割的调优
线性回归是是复杂度较低的模型,学习能力和抗过拟合能力有限,因此训练集过多或者过少都很容易导致过拟合,尝试几组训练集测试集的分割比例,来确定最适合线性回归的训练集数量。

测试集与训练集上的R2

测试集与训练集上的MSE

从结果来看,在测试集上RMSE最低的比例是0.4,从R2的表现来看,测试集比例为0.4时,训练集上R2表现出过拟合的倾向,但不严重。
考虑到现在模型的核心评估指标是RMSE,因此R2稍有问题,但RMSE明显有优势时,应该优先考虑RMSE上的表现。按照0.4比例分割后,不恢复索引,而让索引跟随Xtrain,Xtest分割后的样子。

3.3 异常值处理

根据箱线图法则[ 期刊论文 胡诣文,张天佑,张旭,周才英.基于机器学习的二手车价格预测算法研究[J].信息技术与信息化,2022(10).],所有的付费玩家都被归类到了异常数据里,这与付费玩家往往都是深入参与到游戏的玩家有很大的关系。由于付费玩家都被包括在异常数据中,不能对异常数据进行简单的删除。数据右偏严重,异常值数量众多(超出100w),删掉50%的数据也不可取。因此在这,可以对异常值进行类似于盖帽的特殊处理。
按照箱线图的规则进行异常检测,并对异常值中7日内没有付费的玩家进行用0覆盖,对于7日内氪金的玩家则不处理,尽量放大付费玩家与非付费玩家特征上的区别。

3.4 归一化处理

使用训练集上的最小值和最大值对训练集/测试集同时进行归一化

第四章 算法建模与模型调优

所有的付费用户都被包括在了异常用户中,这说明有大量非付费的用户表现在游戏资源积累、游戏参与深度上的行为与付费用户极为相似。同时,氪金用户与不氪金用户的用户组成都相对复杂。在之前的特征处理中,已经对异常值进行过“盖帽"处理,并在特征中增加认为可以让付费和非付费用户区别变大的特征,但直接让单模型对付费用户的氪金数额进行预测是非常困难的。 因此,可以使用2个模型进行融合预测,第1个模型是分类模型逻辑回归,让逻辑回归先对用户进行“付费与不付费”的预测,然后将逻辑回归认为会付费的用户放入回归算法,对“本来就很可能会付费”的用户进行氪金金额预测。通过这样的方式经过适当调整后,应该能够提升模型表现。

4.1 逻辑回归

付费用户转化为1,不付费用户转化为0

4.2 评估逻辑回归

使用逻辑回归进行建模并使用ROC进行评估
逻辑回归在训练集上的准确率xtrain,Ytrain2:0.997103735932978
逻辑回归在测试集上的准确率xtest,Ytest2:0.9971164867248031
ROC:0.9688024253260042
召回率(Recall):0.8564824885795084
精确度(Precision):1.0
逻辑回归的效果很好,能够在样本量如此不均衡的情况下达到0.969的ROC,证明数据与逻辑回归很适配。
recall和precision结合起来看说明,被预测为1的值都预测正确了,但是还有部分被预测为0的值,实际上真正的值是1。

如果按照现在的结果建模,那RMSE的主要来源就是没有被逻辑回归包括的付费用户的付费金额。被逻辑回归指向付费、受线性回归预测后的金额差异(状况A)。

如果希望逻辑回归能够捕捉到所有真实付费的用户,即便误伤一些没有付费的用户,那么就要提升Recall,此时RMSE的主要来源就是被逻辑回归误认为是付费用户的非氪金用户在线性回归中的预测值+全部真实氪金用户经过线性回归预测后的金额差异(状况B),该状况下需要线性回归预测的值会更多。

经过之后的RMSE判断,阈值=0.02是个比较合适的值。
对于被逻辑回归判断为不付费的样本,预测到此结束,选出应该放在线性回归中的训练集和测试集。开始回归预测

4.3 回归模型的选择

线性回归

随机森林

GBDT

在不是很严格的限制下,随机森林表现不如GBDT。GBDT过拟合,但RMSE最低,和线性回归相比,线性回归参数调节性小,因此选择GBDT。

4.4 模型合并

将逻辑回归与GBDT的预测值合并
RMSE = 55.15942698309719

特征贡献度

第五章 结论

本次项目将逻辑回归与GBDT的预测值合并,预测出来玩家在未来45日内的付费总金额。在业务上可以起到"预测"作用了,模型已经展现出了很好的泛化能力。

参考网上的相关文章
[1]https://zhuanlan.zhihu.com/p/68444844
[2]https://blog.csdn.net/kasiko/article/details/107617110
[3]https://blog.csdn.net/dhr223/article/details/106807469
[4]https://zhuanlan.zhihu.com/p/425458450

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小夕Coding

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

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

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

打赏作者

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

抵扣说明:

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

余额充值