前段时间项目组进行高等级段玩家流失研究,对应进行了数据分析,同时也应童鞋要求,利用数据挖掘的方法尝试流失研究。
高等级玩家流失,对应就是数据挖掘领域中的二元分类问题(是否流失)。我们想从现有数据中探索可能影响玩家流失的因素,作为后续工作的基础。我打算用R语言[party]包(http://cran.r-project.org/web/packages/party/index.html)中的ctree模块实现二元分类,考虑用决策树进行分类,主要是基于以下几个原因。1、玩家流失分类属于不平衡分类。游戏中流失玩家的比例可能高达70%~90%,而留存玩家仅占10%~30%。2、游戏的特殊性,部分流失玩家和留存玩家的行为一致,即数据上重合,这部分噪声数据会影响结果。3、对于数据挖掘算法,我更偏向可解释性。对游戏数据挖掘结果,不应该苛刻精度,更应注重后续的扩展性。如果无法解释原因,对游戏的后续改进意见也很难进行。决策树解释直观简单,正好满足这个要求。
流失数据的挖掘结果,跟我预想大致相同。数据将玩家分为3大类。一类是重度参与玩家,这类玩家流失比例很低;一类是轻度参与玩家,这类玩家流失比例很高,这两类玩家通过决策树可以进行很好的区分。剩下的是中型玩家,也就是上面说的数据重合的玩家。对于这部分玩家,决策树分类的结果不是很好,这个也在清理之中。
这个结果,我还是比较满意的。游戏中的数据可能无法完全随机(因为策划设定的影响),数据在某个点特别集中。而我们训练的决策树各个影响因素的阈值(即决策树的各个节点)大部分跟策划设定的数值一致,这从侧面也验证决策树的可靠性。