掌桥专利:专业的专利平台
掌桥专利
首页

基于LightGBM的游戏流失用户预测方法和系统

文献发布时间:2023-06-19 13:51:08


基于LightGBM的游戏流失用户预测方法和系统

技术领域

本申请涉及网络数据挖掘技术领域,特别是涉及基于LightGBM的游戏流失用户预测方法和系统。

背景技术

现如今,网络游戏在网络娱乐中越来越受到大家的青睐,并且游戏用户规模处于不断增大的趋势,导致游戏市场竞争的日趋激烈,对于游戏运营者,如果能够尽早的发现可能流失的用户,尽早地有针对性的对这些用户进行适当的干预,可以最大限度的延长用户在游戏中的停留时间,同时预防游戏中用户的流失。在相关技术中,游戏流失用户预测方法存在计算量大、内存占用大和准确率低的问题。

目前针对相关技术中游戏流失用户预测方法存在计算量大、内存占用大且准确率低的问题,尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种基于LightGBM的游戏流失用户预测方法和系统,以至少解决相关技术中游戏流失用户预测方法存在计算量大、内存占用大且准确率低的问题。

第一方面,本申请实施例提供了一种基于LightGBM的游戏流失用户预测方法,所述方法包括:

获取用户数据集,为所述用户数据集添加流失用户标签和非流失用户标签,将添加标签后的用户数据集划分为训练集和测试集;

调用python的lightgbm包,根据所述训练集进行模型训练,获得LightGBM模型,获取所述LightGBM模型对所述测试集预测结果的准确率,在所述准确率大于预设值的情况下停止训练,获得训练好的LightGBM模型;

获取待预测数据,通过训练好的所述LightGBM模型输出所述待预测数据的预测结果。

在其中一些实施例中,所述通过训练好的所述LightGBM模型输出所述待预测数据的预测结果之后,所述方法还包括:

基于所述待预测数据的预测结果,将流失用户添加至用户流失预测结果表,根据所述用户流失预测结果表为流失用户实施有针对性的挽留措施。

在其中一些实施例中,调用python的lightgbm包,根据所述训练集进行模型训练包括:

导入包from lightgbm.sklearn import LGBMClassifier;

初始化模型clf_LightGBM=LGBMClassifier(max_bin=5,num_leaves=32,max_depth=7);

训练模型clf_LightGBM.fit(x_train,y_train)。

在其中一些实施例中,获取用户数据集之前,所述方法还包括:

获取多个维度的用户数据,构建用户数据表,对所述用户数据进行预处理,所述预处理包括:

将所述用户数据保存为预设格式,对保存为预设格式的用户数据进行向量化表示;

根据缺失值补值规则对用户数据中每个维度的缺失值进行补值,根据异常值判定规则对用户数据中每个维度的异常值进行修正,将用户数据中的数据类型转换为预设类型,得到预处理后的用户数据。

在其中一些实施例中,得到预处理后的用户数据后,所述方法还包括:

获取所述预处理后的用户数据中所有维度的相关性热力图,根据所述相关性热力图获取相关度大于预设相关性阈值的维度,剔除其中的不必要维度,得到用户数据集。

在其中一些实施例中,所述多个维度的用户数据包括用户ID、用户级别、总在线时长、第一预设时间段在线时长、第一预设时间段登录天数、第一预设时间段登录次数、第二预设时间段在线时长、第二预设时间段登录天数、第二预设时间段登录次数、首次登录距离当前日期的天数、最后一次登录距离当前日期的天数、首次付费时间、最后付费时间、第一预设时间段付费次数、第一预设时间段付费金额、第二预设时间段付费次数、第二预设时间段付费金额、是否为工作室用户、第一预设时间段游戏次数、第一预设时间段胜利次数、第一预设时间段游戏时长、第一预设时间段游戏天数、第二预设时间段游戏次数、第二预设时间段游戏时长和第二预设时间段游戏天数,其中,所述第一预设时间段大于所述第二预设时间段。

第二方面,本申请实施例提供了一种基于LightGBM的游戏流失用户预测系统,所述系统包括标签模块、划分模块、训练模块和预测模块,

所述标签模块,用于获取用户数据集,为所述用户数据集添加流失用户标签和非流失用户标签;

所述划分模块,用于将添加标签后的用户数据集划分为训练集和测试集;

所述训练模块,用于调用python的lightgbm包,根据所述训练集进行模型训练,获得LightGBM模型,获取所述LightGBM模型对所述测试集预测结果的准确率,在所述准确率大于预设值的情况下停止训练,获得训练好的LightGBM模型;

所述预测模块,用于获取待预测数据,通过训练好的所述LightGBM模型输出所述待预测数据的预测结果。

在其中一些实施例中,所述系统还包括添加模块,所述预测模块通过训练好的所述LightGBM模型输出所述待预测数据的预测结果之后,

所述添加模块基于所述待预测数据的预测结果,将流失用户添加至用户流失预测结果表,根据所述用户流失预测结果表为流失用户实施有针对性的挽留措施。

在其中一些实施例中,所述系统还包括数据库操作模块和预处理模块,所述服务端数据库保存有用户数据表,获取用户数据集之前,

所述数据库操作模块用于读入用户数据表中的用户数据,所述预处理模块用于述用户数据进行预处理,所述预处理包括:

将所述用户数据保存为预设格式,对保存为预设格式的用户数据进行向量化表示;

根据缺失值补值规则对用户数据中每个维度的缺失值进行补值,根据异常值判定规则对用户数据中每个维度的异常值进行修正,将用户数据中的数据类型转换为预设类型,得到预处理后的用户数据。

在其中一些实施例中,所述系统还包括剔除模块,得到预处理后的用户数据之后,

所述剔除模块获取所述预处理后的用户数据中所有维度的相关性热力图,根据所述相关性热力图获取相关度大于预设相关性阈值的维度,剔除其中的不必要维度,得到用户数据集。

相比于相关技术,本申请实施例提供的基于LightGBM的游戏流失用户预测方法,通过获取用户数据集,为用户数据集添加流失用户标签和非流失用户标签,将添加标签后的用户数据集划分为训练集和测试集;调用python的lightgbm包,根据训练集进行模型训练,获得LightGBM模型,获取LightGBM模型对测试集预测结果的准确率,在准确率大于预设值的情况下停止训练,获得训练好的LightGBM模型;获取待预测数据,通过训练好的LightGBM模型输出待预测数据的预测结果,解决了相关技术中游戏流失用户预测方法存在计算量大、内存占用大且准确率低的问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的基于LightGBM的游戏流失用户预测方法的流程图;

图2是根据本申请实施例的基于LightGBM的游戏流失用户预测系统的结构框图;

图3是根据本申请实施例的另一种基于LightGBM的游戏流失用户预测系统的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

本实施例提供了一种基于LightGBM的游戏流失用户预测方法,图1是根据本申请实施例的基于LightGBM的游戏流失用户预测方法的流程图,如图1所示,该方法包括如下步骤:

步骤S101,获取用户数据集,为用户数据集添加流失用户标签和非流失用户标签,将添加标签后的用户数据集划分为训练集和测试集;示例性的,用于模型训练与测试的记录数据截止到第n天,若第n+1天至第n+7天的登陆次数大于0,则表示非流失用户,标记为0,表示非流失用户标签,表示非7日流失用户,若第n+1天至第n+7天的登陆次数为0,则表示流失用户,标记为1,表示7日流失用户,可将添加标签后的用户数据集通过sklearn.model_selection.train_test_split进行划分,并按7:3划分为训练集和测试集。

步骤S102,调用python的lightgbm包,根据训练集进行模型训练,获得LightGBM模型,获取LightGBM模型对测试集预测结果的准确率,在准确率大于预设值的情况下停止训练,获得训练好的LightGBM模型;本实施例中,对测试集进行预测的预测结果可以看到模型的性能,在模型的性能符合要求时,可以停止训练。

步骤S103,获取待预测数据,通过训练好的LightGBM模型输出待预测数据的预测结果。

相对于相关技术中,通过XGBoost算法进行用户流失预测,XGBoost算法在每轮迭代时,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间,导致计算量大,内存占用大,易产生过拟合,准确率低的问题。

而本申请技术方案中,通过上述步骤S101至S103,通过为用户数据集添加标签,并划分为训练集和测试集,调用python的lightgbm包,利用训练集进行模型训练,利用测试集的测试结果了解模型的性能,获得训练好的LightGBM模型,再通过训练好的LightGBM模型对待预测数据进行预测,得到预测到的流失用户。

LightGBM算法为高效,高准确率的分类算法,LightGBM与同样基于梯度提升树实现的算法框架XGBoost不同,LightGBM基于直方图方法实现的,可以支持连续特征和类别特征,缓存命中率更高,计算复杂度更低,内存消耗更低,且LightGBM算法采用的是按叶子划分,不像XGBoost算法按层划分可以减少很多计算量,而且LightGBM还支持单边梯度采样算法和互斥特征捆绑算法等,可以减少计算量,故通过本申请实施例,解决了相关技术中对游戏流失用户进行预测存在计算量大、内存占用大和准确率低的问题。

在其中一些实施例中,通过训练好的LightGBM模型输出待预测数据的预测结果之后,基于待预测数据的预测结果,将流失用户添加至用户流失预测结果表,根据用户流失预测结果表为流失用户实施有针对性的挽留措施。本实施例中,为了延长游戏用户的游戏生命周期,预测出游戏用户为流失用户后,对流失用户实施挽留措施,例如,发送道具或提升流失用户的物品装备掉落概率,以此来提升用户体验。也可以根据不同流失用户的情况,实施有针对性的挽留措施,例如,根据用户数据表记录的多种维度的数据分析游戏用户流失的原因,再针对流失原因实施挽留措施。

在其中一些实施例中,调用python的lightgbm包,根据训练集进行模型训练包括:

导入包from lightgbm.sklearn import LGBMClassifier;

初始化模型clf_LightGBM=LGBMClassifier(max_bin=5,num_leaves=32,max_depth=7);

训练模型clf_LightGBM.fit(x_train,y_train)。

LightGBM(Light Gradient Boosting Machine)是基于梯度提升树(GBDT,Gradient Boosting Decision Tree)实现的算法框架,算法原理如下:

下面先阐述二分类的梯度提升树算法原理:

假设数据集D={(x

LightGBM基于梯度提升树实现,其目标函数为下述公式2:

其中,

其中,

定义I

所以对于结构固定为q的树,可以由上式计算出每个叶子j的最优权值

进一步算出

关于结点划分,LightGBM与同样基于梯度提升树实现的算法框架XGBoost不同,LightGBM是基于直方图方法实现的,详细如下:

直方图算法使用前需先对所有特征做bin划分,即把每个特征的取值空间做了分段,每段内的不同值不加区分,如[0,0.3)->0,[0.3,0.7)-->1,....这里不仅包含连续特征,还包括类别特征,LightGBM的优点为直接支持类别特征。

直方图算法伪代码开始:

本次在(leaf*,feature*,v*)划分,更新所有划分叶子节点下的记录与G,H。

直方图算法伪代码结束。直方图算法伪代码中的终止条件可以有多种,如设置本轮的树的最大层数为d,当达到时终止。

直方图算法与预排序算法相比,缓存命中率更高,计算复杂度更低,内存消耗更低。且LightGBM采用的是按叶子划分,不像XGBoost按层划分,这样的优点是可以减少很多低增益的节点划分,可以减少很多计算量。尽管按叶子划分可能导致树过深,但是可以通过限制树的深度来改善。

LightGBM还支持单边梯度采样算法,互斥特征捆绑算法等。单边梯度采样算法主要想法是将一部分对计算信息增益较小的样本丢弃来减少计算量,具体操作是将样本按梯度从小到大排序,取最大的a*100%与最小的b*100%,再将这b*100%的样本乘以权重(1-a)/b,来计算增益。

互斥特征捆绑算法的目的是减少样本的特征数,以此来减少计算量。出发点是高维空间的数据往往是稀疏的,如果存在多个特征互斥,即不同时取非0值,则可以捆绑作为1个特征。但有时会存在少数情况下同时取非0值,此时通过设置最大冲突比率γ,当冲突比率小于γ时,则可以捆绑。

在其中一些实施例中,获取用户数据集之前,获取多个维度的用户数据,构建用户数据表,对用户数据进行预处理,预处理包括:将用户数据保存为预设格式,对保存为预设格式的用户数据进行向量化表示;其中,将用户数据保存为训练LightGBM模型所需的格式,可以为dataframe格式,dataframe格式是python的pandas模块直接支持的,处理速度非常快,向量化同样可以提高计算速度。

当不支持维度缺失值时,根据缺失值补值规则对用户数据中每个维度的缺失值进行补值,例如,日期缺失,可以用1970-01-01 10:00:00表示,以此与正常的日期区分开;另外,不符合实际情况或不符合业务逻辑的值都可以认为是异常值,根据异常值判定规则对用户数据中每个维度的异常值进行修正,例如累计在线时长为一百年,则不符合实际情况;将用户数据中的数据类型转换为预设类型,其中,可以将整数型变量转为int64类型,将实数型变量转为float64类型,整数对应整型,实数对应浮点型,使之不会因为数据类型位数带来精度损失,64位适用于所有情况,如果维度的值域很小,可以调小数据类型的位数,来减小内存占用,例如年龄只需要转为int8类型,经过上述处理后得到预处理后的用户数据。

在其中一些实施例中,得到预处理后的用户数据后,获取预处理后的用户数据中所有维度的相关性热力图,根据相关性热力图获取相关度大于预设相关性阈值的维度,剔除其中的不必要维度,得到用户数据集。本实施例中,通过python的seaborn包可以得到关于所有维度的相关性热力图,过高维度的特征工程不利于数学建模,通过将相关性大于预设相关性阈值的维度中一些不必要的维度剔除,可以提高模型的训练效率。

在其中一些实施例中,多个维度的用户数据包括用户ID、用户级别、总在线时长、第一预设时间段在线时长、第一预设时间段登录天数、第一预设时间段登录次数、第二预设时间段在线时长、第二预设时间段登录天数、第二预设时间段登录次数、首次登录距离当前日期的天数、最后一次登录距离当前日期的天数、首次付费时间、最后付费时间、第一预设时间段付费次数、第一预设时间段付费金额、第二预设时间段付费次数、第二预设时间段付费金额、是否为工作室用户、第一预设时间段游戏次数、第一预设时间段胜利次数、第一预设时间段游戏时长、第一预设时间段游戏天数、第二预设时间段游戏次数、第二预设时间段游戏时长和第二预设时间段游戏天数,其中,第一预设时间段大于第二预设时间段。其中,在线时长和游戏时长的区别是,在线时长指游戏客户端开启的累计时长,游戏时长指用户进行游戏的时长,如闯关类游戏,游戏时长仅包含闯关的时长,第一预设时间段和第二预设时间段可根据需要进行设置,例如,将第一预设时间段设置为14天,第二预设时间段设置为7天。

需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本实施例还提供了一种基于LightGBM的游戏流失用户预测系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图2是根据本申请实施例的基于LightGBM的游戏流失用户预测系统的结构框图,如图2所示,该系统包括标签模块21、划分模块22、训练模块23和预测模块24,标签模块21用于获取用户数据集,为用户数据集添加流失用户标签和非流失用户标签;划分模块22用于将添加标签后的用户数据集划分为训练集和测试集;训练模块23用于调用python的lightgbm包,根据训练集进行模型训练,获得LightGBM模型,获取LightGBM模型对测试集预测结果的准确率,在准确率大于预设值的情况下停止训练,获得训练好的LightGBM模型;预测模块24用于获取待预测数据,通过训练好的LightGBM模型输出待预测数据的预测结果,解决了相关技术中游戏流失用户预测方法存在计算量大、内存占用大且准确率低的问题。

在其中一些实施例中,图3是根据本申请实施例的另一种基于LightGBM的游戏流失用户预测系统的结构框图,如图3所示,该系统还包括服务端数据库31、数据库操作模块32、预处理模块33、剔除模块34和添加模块35,服务端数据库31包含两张表,分别为用户数据表和用户流失预测结果表,数据库操作模块32通过Python的configparser包读取ini配置文件中的数据库的参数,用于读入用户数据表中的用户数据,预处理模块33对读入的用户数据进行预处理,剔除模块34将相关性大于预设相关性阈值的维度中一些不必要的维度剔除,添加模块35用于将流失用户添加至用户流失预测结果表,并为流失用户实施有针对性的挽留措施。

需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。

本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

另外,结合上述实施例中的基于LightGBM的游戏流失用户预测方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于LightGBM的游戏流失用户预测方法。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于LightGBM的游戏流失用户预测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

技术分类

06120113830710