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

一种流失用户预测方法、装置及计算机可读存储介质

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


一种流失用户预测方法、装置及计算机可读存储介质

技术领域

本发明涉及数据处理技术领域,尤其涉及一种流失用户预测方法、装置及计算机可读存储介质。

背景技术

随着电子竞技行业的发展和越来越多的游戏出现,许多爆款游戏会拥有大量的游戏玩家。为了延长玩家的游戏生命周期,游戏开发者希望能够根据玩家的行为来预测其是否会流失。而数据作为记载大量信息的载体,在如今的网络和大数据时代的重要性不容置疑。因此,如何利用游戏玩家的用户数据进行精准、快速的预测成为当前游戏开发者亟需解决的问题。

发明内容

为解决上述技术问题,本发明实施例期望提供一种流失用户预测方法、装置及计算机可读存储介质,能够高效、准确地预测目标用户是否会成为流失用户,为后续的用户分析提供基础。

本发明的技术方案是这样实现的:

第一方面,本发明实施例提供一种流失用户预测方法,包括:

获取预测模型和待测数据,预测模型是采用极端梯度提升XGBoost算法训练得到的,待测数据为目标用户的用户数据,用户数据至少包括用户标识ID、用户在第一预设时长内的登录数据和在第二预设时长内的登录数据,第一预设时长短于第二预设时长;

将待测数据输入预测模型,输出测试结果,测试结果用于指示目标用户是否会成为第一预设时长的流失用户。

可选的,登陆数据包括以下数据中的至少一项:在线时长、登陆天数、登陆次数、付费次数、付费金额、游戏次数、胜利次数、游戏时长、游戏天数。

可选的,用户数据还包括以下数据中的至少一项:用户级别、总在线时长、首次登陆距离当前时刻的天数、最后一次登陆距离当前时刻的天数、首次付费距离当前时刻的天数、最后一次付费距离当前时刻的天数。

可选的,获取预测模型,包括:

获取历史数据集,历史数据集包括多个历史用户的用户数据;

调用分离器函数,将历史数据集划分为历史训练数据和历史测试数据;

采用XGBoost算法构建初始训练模型,并利用历史训练数据对初始训练模型进行模型训练,得到预测模型。

可选的,在利用历史训练数据对初始训练模型进行模型训练后,还包括:

利用历史测试数据对训练后的初始训练模型进行预测验证;

若验证通过,则将训练后的初始训练模型作为预测模型;

若验证不通过,则返回执行“利用历史训练数据对初始训练模型进行模型训练”的步骤,直至验证通过为止。

可选的,在获取历史数据集后,还包括:

对历史数据集进行数据预处理,数据预处理包括缺值填补、异常数据修正、数据格式转换、冗余数据剔除中的至少一种。

可选的,历史训练数据和历史测试数据的比例为7:3。

可选的,当测试结果为第一标识时,表示目标用户不会成为第一预设时长的流失用户;当测试结果为第二标识时,表示目标用户会成为第一预设时长的流失用户;其中,

第一标识为0,第二标识为1;或者,

第一标识为1,第二标识为0。

可选的,第二预设时长为14天,第一预设时长为7天。

第二方面,本发明实施例提供了一种流失用户预测装置,包括:处理器,处理器用于在执行计算机程序时实现具有上述第一方面任一特征的流失用户预测方法。

第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现具有上述第一方面任一特征的流失用户预测方法。

本发明实施例提供了一种流失用户预测方法、装置及计算机可读存储介质。通过极端梯度提升XGBoost算法构建预测模型,并采用预测模型对目标用户进行预测,输出该目标用户是否会成为第一预设时长的流失用户的测试结果。从而高效、准确地预测目标用户是否会成为流失用户,为后续的用户分析提供基础,如对预测的将要流失的用户实施有针对性的挽留措施、提升游戏用户的游戏生命周期等,以使得游戏生态更加有活力。

附图说明

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

图1为本发明实施例一提供的一种流失用户预测方法的流程示意图;

图2为本发明实施例二提供的一种流失用户预测方法的流程示意图;

图3为本发明实施例三提供的一种流失用户预测装置的结构示意图;

图4为本发明实施例四提供的一种流失用户预测装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明中术语“系统”和“网络”在本文中常被可互换使用。本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。

还需要说明是,本发明下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本发明实施例对此不作具体限制。

下面,对流失用户预测方法、装置及其技术效果进行详细描述。

实施例一

图1为本发明实施例一提供的一种流失用户预测方法的流程示意图,本发明实施例公开的方法适用于流失用户预测装置(如计算机设备等)。如图1所示,该方法可以包括如下步骤:

S110、获取预测模型和待测数据,预测模型是采用极端梯度提升XGBoost算法训练得到的,待测数据为目标用户的用户数据,用户数据至少包括用户标识ID、用户在第一预设时长内的登录数据和在第二预设时长内的登录数据,第一预设时长短于第二预设时长。

极端梯度提升XGBoost算法是一种经典的集成式分类算法,是基于梯度提升决策树(Gradient Boosting DecisionTree,GBDT)算法的一种优化。与传统的GBDT算法相比,XGBoost算法具有训练效率高、预测效果好、可控参数多、使用方便等特性,是大数据分析领域的一柄利器。本发明采用XGBoost算法训练预测模型,能够高效、准确地预测目标用户是否会成为流失用户,为后续的用户分析提供基础。

具体的,采用极端梯度提升XGBoost算法训练预测模型的步骤可以参考下述实施例二的内容,此处不再赘述。

在一实施例中,用户(包括目标用户)可以为某一款游戏的注册用户。待测数据为目标用户的用户数据。用户数据通常存储在游戏服务端数据库中,该游戏服务端数据库可以包含两类数据表:一类是用户记录表(用于存储用户数据);另一类是用户流失预测结果表(用于记录下述步骤S120中输出的测试结果)。

具体的,用户数据至少包括用户标识(identity,ID)、用户在第一预设时长内的登录数据和在第二预设时长内的登录数据,第一预设时长短于第二预设时长。登陆数据包括以下数据中的至少一项:在线时长、登陆天数、登陆次数、付费次数、付费金额、游戏次数、胜利次数、游戏时长、游戏天数。

可选的,用户数据还包括以下数据中的至少一项:用户级别、总在线时长、首次登陆距离当前时刻的天数、最后一次登陆距离当前时刻的天数、首次付费距离当前时刻的天数、最后一次付费距离当前时刻的天数。

在一实施例中,第二预设时长为14天,第一预设时长为7天。

例如,用户记录表中包括若干条用户记录,每条用户记录记录有以下信息(又称维度):用户ID、用户级别、总在线时长(秒)、近14天在线时长(秒)、近14天登录天数、近14天登录次数、近7天在线时长(秒)、近7天登录天数、近7天登录次数、首次登陆距离当前日期的天数、最后一次登陆距离当前日期的天数、首次付费距离当前日期的天数、最后一次付费距离当前日期的天数、近14天付费次数、近14天付费金额、近7天付费次数、近7天付费金额、是否工作室用户、近14天游戏次数、近14天胜利次数、近14天游戏时长(秒)、近14天游戏天数、近7天游戏次数、近7天胜利次数、近7天游戏时长(秒)、近7天游戏天数。

其中,在线时长和游戏时长的区别是:在线时长指游戏客户端开启的累计时长;游戏时长指用户进行游戏的时长(如闯关类游戏,游戏时长仅包含闯关的时长)。

在一实施例中,可以通过调用Python的configparser包读取ini配置文件中的数据库参数,以从游戏服务端数据库中获得待测数据。

S120、将待测数据输入预测模型,输出测试结果,测试结果用于指示目标用户是否会成为第一预设时长的流失用户。

当测试结果为第一标识时,表示目标用户不会成为第一预设时长的流失用户;当测试结果为第二标识时,表示目标用户会成为第一预设时长的流失用户。

示例性的,参照上述游戏服务端数据库中的用户流失预测结果表,用户流失预测结果表的数据截止至第n天,若该目标用户第n+1天至第n+7天的登陆次数大于0,则测试结果被标记为第一标识,表示目标用户不会成为第一预设时长的流失用户;若该目标用户第n+1天至第n+7天的登陆次数为0,则测试结果被标记为第二标识,表示目标用户会成为第一预设时长的流失用户。

可选的,第一标识为0,第二标识为1;或者,第一标识为1,第二标识为0。

实施例二

图2为本发明实施例二提供的一种流失用户预测方法的流程示意图,本发明实施例公开的方法适用于流失用户预测装置(如计算机设备等)。如图2所示,该方法可以包括如下步骤:

S210、获取历史数据集,历史数据集包括多个历史用户的用户数据。

在一实施例中,用户(包括目标用户和历史用户)可以为某一款游戏的注册用户。用户数据通常存储在游戏服务端数据库中,该游戏服务端数据库可以包含两类数据表:一类是用户记录表(用于存储用户数据);另一类是用户流失预测结果表(用于记录下述步骤S290中输出的测试结果)。

具体的,用户数据至少包括用户ID、用户在第一预设时长内的登录数据和在第二预设时长内的登录数据,第一预设时长短于第二预设时长。登陆数据包括以下数据中的至少一项:在线时长、登陆天数、登陆次数、付费次数、付费金额、游戏次数、胜利次数、游戏时长、游戏天数。

可选的,用户数据还包括以下数据中的至少一项:用户级别、总在线时长、首次登陆距离当前时刻的天数、最后一次登陆距离当前时刻的天数、首次付费距离当前时刻的天数、最后一次付费距离当前时刻的天数。

在一实施例中,第二预设时长为14天,第一预设时长为7天。

例如,用户记录表中包括若干条用户记录,每条用户记录记录有以下信息(又称维度):用户ID、用户级别、总在线时长(秒)、近14天在线时长(秒)、近14天登录天数、近14天登录次数、近7天在线时长(秒)、近7天登录天数、近7天登录次数、首次登陆距离当前日期的天数、最后一次登陆距离当前日期的天数、首次付费距离当前日期的天数、最后一次付费距离当前日期的天数、近14天付费次数、近14天付费金额、近7天付费次数、近7天付费金额、是否工作室用户、近14天游戏次数、近14天胜利次数、近14天游戏时长(秒)、近14天游戏天数、近7天游戏次数、近7天胜利次数、近7天游戏时长(秒)、近7天游戏天数。

其中,在线时长和游戏时长的区别是:在线时长指游戏客户端开启的累计时长;游戏时长指用户进行游戏的时长(如闯关类游戏,游戏时长仅包含闯关的时长)。

在一实施例中,可以通过调用Python的configparser包读取ini配置文件中的数据库参数,以从游戏服务端数据库中获得历史数据集。

S220、对历史数据集进行数据预处理,数据预处理包括缺值填补、异常数据修正、数据格式转换、冗余数据剔除中的至少一种。

可选的,在获得历史数据集后,将历史数据集存为dataframe格式。

对历史数据集进行缺值填补的方法可以为:通过Numpy向量化的方式,根据历史用户的用户数据每个维度的缺失值补值规则,进行缺值填补。

对历史数据集进行异常数据修正的方法可以为:根据异常值的判定规则,修正历史用户的用户数据中的异常值。

对历史数据集进行数据格式转换的方法可以为:将整数型变量转为int64类型,将实数型变量转为float64类型。

对历史数据集进行冗余数据剔除的方法可以为:通过python的seaborn包得到关于所有维度的相关性热力图,只保留相关度大于预设阈值的维度,剔除其余维度。

S230、调用分离器函数,将历史数据集划分为历史训练数据和历史测试数据。

具体的,可以通过sklearn.model_selection.train_test_split对历史数据集进行划分,得到历史训练数据和历史测试数据。

在一实施例中,历史训练数据和历史测试数据的比例为7:3。

S240、采用XGBoost算法构建初始训练模型,并利用历史训练数据对初始训练模型进行模型训练。

具体的,调用python的xgboost包,采用XGBoost算法构建初始训练模型,并利用历史训练数据对初始训练模型进行模型训练。示例性的,可以包括三个步骤:1.导入包fromxgboost.sklearn import XGBClassifier;2.初始化模型clf_xgboost=XGBClassifier();3.训练模型clf_xgboost.fit(x_train,y_train)。

假设历史数据集D={(x

XGBoost基于梯度提升树实现,其目标函数为:

其中,

则L

其中,

而由于

定义I

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

并进一步算出

划分选择方法,本发明以精确贪心的划分选择方法为例进行说明:

假设I为当前节点样本集,m为样本的维数,即特征数。初始化gain=0,

以score最大的特征分割点分裂节点。

S250、利用历史测试数据对训练后的初始训练模型进行预测验证。

其中,历史测试数据记为clf_xgboost.predict(x_test)。

S260、若验证通过,则将训练后的初始训练模型作为预测模型。

S270、若验证不通过,则返回执行步骤S230,直至验证通过为止。

S280、获取待测数据,待测数据为目标用户的用户数据。

S290、将待测数据输入预测模型,输出测试结果,测试结果用于指示目标用户是否会成为第一预设时长的流失用户。

当测试结果为第一标识时,表示目标用户不会成为第一预设时长的流失用户;当测试结果为第二标识时,表示目标用户会成为第一预设时长的流失用户。

示例性的,参照上述游戏服务端数据库中的用户流失预测结果表,用户流失预测结果表的数据截止至第n天,若该目标用户第n+1天至第n+7天的登陆次数大于0,则测试结果被标记为第一标识,表示目标用户不会成为第一预设时长的流失用户;若该目标用户第n+1天至第n+7天的登陆次数为0,则测试结果被标记为第二标识,表示目标用户会成为第一预设时长的流失用户。

可选的,第一标识为0,第二标识为1;或者,第一标识为1,第二标识为0。

本发明实施例提供一种流失用户预测方法,包括:获取预测模型和待测数据,预测模型是采用极端梯度提升XGBoost算法训练得到的,待测数据为目标用户的用户数据,用户数据至少包括用户标识ID、用户在第一预设时长内的登录数据和在第二预设时长内的登录数据,第一预设时长短于第二预设时长;将待测数据输入预测模型,输出测试结果,测试结果用于指示目标用户是否会成为第一预设时长的流失用户。通过极端梯度提升XGBoost算法构建预测模型,并采用预测模型对目标用户进行预测,输出该目标用户是否会成为第一预设时长的流失用户的测试结果。从而高效、准确地预测目标用户是否会成为流失用户,为后续的用户分析提供基础,如对预测的将要流失的用户实施有针对性的挽留措施、提升游戏用户的游戏生命周期等,以使得游戏生态更加有活力。

实施例三

图3为本发明实施例三提供的一种流失用户预测装置的结构示意图,如图3所示,流失用户预测装置包括:模型训练模块10,数据处理模块11和预测模块12。

模型训练模块10,用于获取预测模型,预测模型是采用极端梯度提升XGBoost算法训练得到的;

数据处理模块11,用于获取待测数据,待测数据为目标用户的用户数据,用户数据至少包括用户标识ID、用户在第一预设时长内的登录数据和在第二预设时长内的登录数据,第一预设时长短于第二预设时长;

预测模块12,用于将待测数据输入预测模型,输出测试结果,测试结果用于指示目标用户是否会成为第一预设时长的流失用户。

本实施例提供的流失用户预测装置为实现上述实施例的流失用户预测方法,本实施例提供的流失用户预测装置实现原理和技术效果与上述实施例类似,此处不再赘述。

可选的,登陆数据包括以下数据中的至少一项:在线时长、登陆天数、登陆次数、付费次数、付费金额、游戏次数、胜利次数、游戏时长、游戏天数。

可选的,用户数据还包括以下数据中的至少一项:用户级别、总在线时长、首次登陆距离当前时刻的天数、最后一次登陆距离当前时刻的天数、首次付费距离当前时刻的天数、最后一次付费距离当前时刻的天数。

可选的,数据处理模块11,还用于获取历史数据集,历史数据集包括多个历史用户的用户数据;调用分离器函数,将历史数据集划分为历史训练数据和历史测试数据;

模型训练模块10,具体用于采用XGBoost算法构建初始训练模型,并利用历史训练数据对初始训练模型进行模型训练,得到预测模型。

可选的,模型训练模块10,还用于在利用历史训练数据对初始训练模型进行模型训练后,利用历史测试数据对训练后的初始训练模型进行预测验证;若验证通过,则将训练后的初始训练模型作为预测模型;若验证不通过,则返回执行“利用历史训练数据对初始训练模型进行模型训练”的步骤,直至验证通过为止。

可选的,数据处理模块11,还用于在获取历史数据集后,对历史数据集进行数据预处理,数据预处理包括缺值填补、异常数据修正、数据格式转换、冗余数据剔除中的至少一种。

可选的,历史训练数据和历史测试数据的比例为7:3。

可选的,当测试结果为第一标识时,表示目标用户不会成为第一预设时长的流失用户;当测试结果为第二标识时,表示目标用户会成为第一预设时长的流失用户;其中,

第一标识为0,第二标识为1;或者,

第一标识为1,第二标识为0。

可选的,第二预设时长为14天,第一预设时长为7天。

实施例四

本发明实施例还提供了一种流失用户预测装置,包括:处理器,处理器用于在执行计算机程序时实现具有上述实施例任一特征的流失用户预测方法。

图4为本发明实施例四提供的一种流失用户预测装置的结构示意图,如图4所示,该流失用户预测装置包括处理器20、存储器21、输入装置22和输出装置23;流失用户预测装置中处理器20的数量可以是一个或多个,图4中以一个处理器20为例;流失用户预测装置中的处理器20、存储器21、输入装置22和输出装置23可以通过总线或其他方式连接,图4中以通过总线连接为例。总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。

存储器21作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的方法对应的程序指令/模块。处理器20通过运行存储在存储器21中的软件程序、指令以及模块,从而执行流失用户预测装置的各种功能应用以及数据处理,即实现上述的方法。

存储器21可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据流失用户预测装置的使用所创建的数据等。此外,存储器21可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器21可进一步包括相对于处理器20远程设置的存储器,这些远程存储器可以通过网络连接至流失用户预测装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置22可用于接收输入的数字或字符信息,以及产生与网络安全事件的关联分析装置的用户设置以及功能控制有关的键信号输入。输出装置23可包括显示屏等。

实施例五

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的一种流失用户预测方法,该方法具体可以但不限于上述各方法实施例所公开的内容。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++、Ruby、Go,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

技术分类

06120113830711