经典机器学习 如何做到预流失与流失挽回?

该博客探讨了如何运用经典机器学习方法预测预流失用户并实施流失挽回策略。通过数据预处理、特征工程、正负样本均衡、模型训练(以LR为例)和离线模型评估(计算AUC等指标),来提高留存率和回流率。文章强调了模型在游戏运营中的应用,以提高用户体验和减少运营成本。
摘要由CSDN通过智能技术生成

导语:预流失用户,即有流失倾向,但还没有开始真正流失的用户。相较于流失用户而言,预流失用户处于观望阶段,或许对现有产品有所顾虑,或许对于潜在的流向(竞品)有所顾虑,或许是在等待些什么;流失用户,即已经流失了的用户,或许是因为游戏弃坑,或许选择了其他产品,用户肯定还在玩些什么,只是不再来你这儿了。文章介绍了如何通过经典的机器学习(Machine Learning, ML)方法来寻找那些流失可能性比较高的用户、寻找那些回流意愿比较大的用户。运营同学针对这些用户就可以重点干预,降低预流失用户比例,拉高用户的回流比例。

背景

在日常游戏运营中,我们常常需要提高目标用户的留存率、提高流失用户的回流率、精准运营、节约运营资源。基于以上的述求,我们将经典机器学习实践于预流失和流失挽回两个场景。

模型整体设计流程图如下:

预流失与流失挽回概述

  1. 预流失

预流失用户,即有流失倾向,但还没有开始真正流失的用户。相较于流失用户而言,预流失用户处于观望阶段,或许对现有产品有所顾虑,或许对于潜在的流向(竞品)有所顾虑,或许是在等待些什么。

  1. 流失挽回

流失用户,即已经流失了的用户,或许是因为游戏弃坑,或许选择了其他产品,用户肯定还在玩些什么,只是不再来你这儿了。

获得训练数据

  1. 基础数据

基础数据是最基础也是最重要的第一步,需要我们去寻找、清洗各种原始数据,原始数据包括用户的登录数据、充值数据和用户数据几个模块。

模型训练自然是数据越多越好的。

  1. 给用户打标签

预流失,判断用户是否会流失,如果上上周活跃,上周不活跃则是流失用户,label=1;反之上周活跃,则label=0。我们可以以周为单位,读取过去四周、八周或者更多的原始数据。

在流失挽回场景,label的判断逻辑正好相反,如下图所示

准备训练测试数据

  1. 训练测试数据划分

根据自己的数据集大小合理的划分出三种数据,验证集在训练的时候用于模型调参,测试集在最后的最后模型所有参数设定后用于验证模型效果。

  1. 正负样本均衡

如果实际数据中正负样本的比例严重不均衡,则有必要处理一下。处理办法是有放回的随机采样,code 示例如下:

正负样本均衡

import random

pos_vs_neg = 1.0

pos_data_count = train_df.filter(train_df[‘ilabel’] == 1).count()

neg_data_count = train_df.filter(train_df[‘ilabel’] == 0).count()

gap = pos_data_count-neg_data_count*pos_vs_neg

print('from ', pos_data_count, neg_data_count, ‘to’, pos_data_count, neg_data_count*pos_vs_neg, ‘gap’, gap)

if gap>0: # 正样本多,取样负样本

data_add = train_df.filter(train_df[‘ilabel’] == 0).sample(True, gap/neg_data_count, random.randint(1, 1000))

train_df = train_df.union(data_add)

elif gap

data_add = train_df.filter(train_df[‘ilabel’] == 1).sample(True, -gap/pos_data_count, random.randint(1, 1000))

train_df = train_df.union(data_add)

print(train_df.filter(train_df[‘ilabel’] == 1).count(), train_df.filter(train_df[‘ilabel’] == 0).count())

print(‘balancing data finish’)

(左滑可查看完整代码,下同)

特征工程

  1. 特征选取

这里只简单的截取了一些常用到的特征,大家可以根据自己的场景增加各种简单特征、组合特征。日期特征需要注意一下,不同的游戏上线时间不一样、日期格式的数据也不方便运算,比如20181231,20190101,20190102其实都只差一天,但是数值上却差了很大,这里我们直接将日期转换成距今天天数,日期数据数值化,很方便后续的计算处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值