2019年用户流失分析(五)——Python实现

2023-11-19

5、 模型应用

       选择4月份为正常状态的电视用户,计算他们的收视时长、收视在线天数、距最近一次收视时间、入网时长、用户主动办理次数和投诉与报障次数6个特征指标,利用构建好的用户流失模型预测5月份的用户流失情况。

5.1 离网倾向阈值

       在4月份为正常状态的电视用户数为98201。5月份真实流失的电视用户数为1391,流失率为1.40%。此时通过构建好的预测模型预测之后,计算与2019年5月真实流失的5161个用户的匹配度,即模型应用的召回率为22.57%。

       在用户流失模型的输出结果中有一个指标为离网倾向阈值,可以用来作为用户流失的概率(0~1),以区分不同用户间流失可能性的高低,概率越高越可能流失。

       在不用模型的情况下,任意给出X%的用户名单,其命中率为常数,等于离网率(均值为1.5%),召回率等于X%。

在使用模型的情况下,给出离网倾向最高的前X%的用户名单。其预测效果如表格11所示。

表格11

离网倾向阈值

流失人数

准确率

(命中率)

召回率

(查全率)

0.76

35278

0.88%

22.57%

0.63

48777

1.02%

35.73%

0.58

63129

1.35%

61.11%

0.33

80996

1.45%

84.40%

5.2 条件选择预测分析

       除了离网倾向阈值这个指标外,还可以通过特征指标的选择,观察模型的效果是否有变化。如表格12所示。

  1. 全网的用户月均在线天数为15天。
  2. 全网的用户月均收视时长为200小时。
  3. 全网的用户月均办理业务和缴费次数(包括主动缴费与被动缴费)为0.3次。
  4. 全网的用户年均投诉与报障次数为1.96次。

表格12

条件

用户数

流失人数

准确率

(命中率)

召回率

(查全率)

无条件

98201

35278

0.88%

22.57%

在线天数高于75天的用户

50841

41936

0.57%

17.04%

在线天数低于75天的用户

47360

17096

2.87%

35.23%

收视时长高于1000小时的用户

86976

72147

0.98%

51.11%

收视时长低于1000小时的用户

11225

10617

3.71%

28.32%

办理次数高于2次的用户

24631

18951

1.37%

18.62%

办理次数低于2次的用户

73570

30534

1.47%

46.08%

投诉与报障次数高于2次的用户

35691

27111

1.05%

20.56%

投诉与报障次数低于2次的用户

62510

23486

2.63%

44.43%

       从条件选择预测的分析结果可以看出,增加在线天数低于75天、收视时长低于1000小时、办理次数低于2次、投诉与报障次数低于2次的4个条件后,预测的准确率和查准率均有提高。

       后面又进行4个条件的随机组合实验,发现投诉与报障次数、在线天数这两个指标的影响显著。

5.3 模型指导意义

       在一系列用户流失的分析、建模、预测、应用的过程中,大家肯定比较关心:在流失预测模型的指导下对高流失用户开展挽留关怀活动,下个月的用户流失率会不会显著地降低呢?

       答案是不一定,因为用户流失预测模型只是揭示了“什么样的用户更可能会流失”这样一个客观规律。实际情况是在使用用户流失预测模型之后,用户流失率往往得不到大幅度的降低。下面通过一个例子来说明。

       假设当前有效用户数120万,月平均流失1.8万,流失率为1.5%。

       按照流失预测模型给出的流失倾向评分从高到低,从120万的有效用户中选取前5%的高流失倾向用户,即6万,其中真实流失的用户有120×5%×1.5%×5=0.45万个。

       用户挽留过程,会有用户的接触成功率,假设为50%。成功接触用户后又存在挽留成功率问题,假设为30%。

       此时计算根据流失预测模型来采取挽留关怀活动能够成功挽留下来的用户数量:

       高流失倾向用户数×有效用户的平均流失率×模型提升度×接触成功率×接触到的用户的成功挽留率=1200000×5%×1.5%×5×50%×30%=675人

       在这种情况下,流失率=(18000-675)/1200000=0.0144%,和不做活动的1.5%几乎没有区别。从这里我们可以看出,用户流失预测模型并没有给企业带来关于用户流失率方面的多大改变。

       那还要不要做流失预测模型呢?

       答案是肯定的。如果是单纯为了大幅度降低用户流失率,流失预测模型所起到的效果是相对较少的。原因很简单,流失预测模型其实是一种方法论,它并不能直接带来用户流失率的降低。有些用户虽然看起来还是正常的用户,但已由活跃用户逐渐转为不活跃,不再贡献利润价值。

       但是通过挽留关怀让用户继续保持活跃,继续贡献利润价值,用户流失预测模型是可以的,最大限度地让用户保持活跃状态。

       假定每月可以接触6万用户,根据由用户流失预测模型给出的高流失倾向的前5%的用户名单开展关怀与挽留工作,刚好120×5%=6万人,这时每月可以成功挽留住的用户数为675人。

       如果没有模型指导,每月可以成功挽留住的用户数:

       高流失倾向用户数×高价值用户的平均流失率×接触成功率×接触到的用户的成功挽留率=1200000×5%×1.5%×50%×30%= 135人

       可以发现有模型指导的挽留比没有模型指导的挽留在每月的工作中成功地多挽留了675-135=540个用户。假设这些成功留住的用户可以继续保持活跃状态的时长为3个月,有效用户平均贡献金额每月50元,则每月由于挽留效率的提高可以获得的额外收益将为540×50×3=81000元。

       一年内,年总收益将增加81000×12=972000元。若用户的月平均金额贡献为几百元,则更多收益。即使模型的提升度为3的情况下,每年的收益依然能够增加486000元。

       所以,用户流失预测模型不能只看到模型预测结果准还是不准,还需要应用到实际的用户挽留关怀工作当中去,这样才能看到实实在在的效益变化。

Python用户流失系列文章一月一更!

文章未经博主同意,禁止转载!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2019年用户流失分析(五)——Python实现 的相关文章

  • 如何查看Databricks中的所有数据库和表

    我想列出 Azure Databricks 中每个数据库中的所有表 所以我希望输出看起来像这样 Database Table name Database1 Table 1 Database1 Table 2 Database1 Table
  • 使用 pythonbrew 编译 Python 3.2 和 2.7 时出现问题

    我正在尝试使用构建多个版本的 python蟒蛇酿造 http pypi python org pypi pythonbrew 0 7 3 但我遇到了一些测试失败 这是在运行的虚拟机上 Ubuntu 8 04 32 位 当我使用时会发生这种情
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P

随机推荐

  • Spring的跨域解决方案总结

    前言 跨域是什么 浏览器从一个域名的网页去请求另一个域名的资源时 域名 端口和协议 只要有一个不同就是跨域 我们的项目通常是采用前后端分离开发的 也就是前后端分离部署的 所以必然会存在跨域问题 CORS Cross Origin Resou
  • 【Liunx常用操作】LVM逻辑卷的介绍和相关操作(创建、删除、扩缩容)

    提示 为保证文章的正确性和实用性 文章内容可能会不定时优化改进 若您有建议或者文章存在错误请私信留言或评论指正 下面以CentOS7 6操作系统为例 介绍具体的操作步骤 如果本文对你有帮助 记得关注加收藏 1 文章前言 LVM Logica
  • 浅谈微服务异步解决方案

    导言 异步是一种设计思想 不是设计目的 因此不要为了异步而异步 要有所为 有所不为 异步不是 银弹 避免试图套用一个 异步框架 解决所有问题 需要根据不同的业务特点或要求 选择合适的设计实现方式 同步和异步问题是大型分布式系统中需要慎重等待
  • vue数据导出

    点击按钮 async download this buttonLoading true this http responseType blob params this formInline 这是默认页数 一些项目配置数据 then resp
  • SimpleDateFormat线程不安全及解决办法

    以前没有注意到SimpleDateFormat线程不安全的问题 写时间工具类 一般写成静态的成员变量 不知 此种写法的危险性 在此讨论一下SimpleDateFormat线程不安全问题 以及解决方法 为什么SimpleDateFormat不
  • Android studio 3.0+ 为模拟器导入图片

    问题 很多时候 写一个 App 的 Demo 需要加载本地图片 但是模拟器直接打开会发现 图库中是空的 这时候就需要我们手动向里面添加图片 在 Android 3 0 以前 通过 DDMS 很轻松的把图片拖进去就是了 但是 在 Androi
  • 西门子PLC各个通信协议解析,分析

    1 协议分类 0 协议背景介绍1 1 mpi接口 dp接口 rs485接口 rs232接口具体区别 一 mpi接口 dp接口 这两者均为基于RS485接口 可以理解为硬件标准 mpi与dp是通信协议的名称 可以理解为软件 二 MPI MPI
  • Linux下Qt可执行程序设置动态库及插件路径

    在linux下直接双击编译完的可执行程序发现压根跑不起来 但是在Qt Creator中能够执行和调试 那是因为可执行程序无法加载Qt的库导致的 下面提供一种解决办法 新建run sh 名称可随意修改 将以下内容写入文件中 bin bash
  • 【直观详解】什么是正则化

    转自 https charlesliuyx github io 2017 10 03 E3 80 90 E7 9B B4 E8 A7 82 E8 AF A6 E8 A7 A3 E3 80 91 E4 BB 80 E4 B9 88 E6 98
  • 一起学nRF51xx 9 -  pwm

    前言 上一讲我们学习了nrf51822定的器的使用 那行如何用定时器实现PWM输出呢 NRF51的time模块不支持 PWM 功能 不可我们可以通过定时器 PPI GPIOTE模块一起工作的方式在NRF51XX上产生 PWM 信号 下面以使
  • 2023华为OD机试真题【最佳植树位置/二分法】

    题目内容 小明在直线的公路上种树 现在给定可以种树的坑位的数量和位置 以及需要种多少棵树苗 问树苗之间的最小间距是多少时 可以保证种的最均匀 两棵树苗之间的最小间距最大 输入描述 输入三行 第一行一个整数 坑位的数量 第二行以空格分隔的数组
  • 2023年考证时间一览表

    2022年已经成为历史 在疫情背景全面开放下给大家整理了2023年全年的考试时间以及报名时间新鲜出炉 了解清楚 为2023年提前做好规划 1月份 2022年下半年中小学教师资格考试面试 报名时间 2022年12月9日 12日 考试时间 20
  • Java Web如何限制访问的IP的两种方法

    Java Web限制IP访问的两种方法 前一阵子因为在做项目时碰到了这个功能 现在好好总结一下 至于为什么要限制IP访问 我就不多说了 然后百度了一下 现在主要有两种方式去限制IP访问 第一种是最简单的方便的 第二种是通过过滤器来限制访问
  • vuforia模型脱卡功能的实现

    思路是这样 识别图视野脱离之后 将被识别的物体不再作为识别图的子物体 转而作为相机的子物体 并置于屏幕中央位置 1 首先 写个小script C 纯文本查看 复制代码 01
  • Mybatis/Mybatis-Plus驼峰式命名映射

    目录 一 mybatis驼峰式命名 二 mybatisPlus默认开启驼峰命名映射 一 mybatis驼峰式命名 方法一 使用前提 数据库表设计按照规范 字段名中各单词使用下划线 划分 使用好处 省去mapper xml文件中繁琐编写表字段
  • 团队梯队人才培养模型,60页人才梯队建设与人才培养

    团队梯队人才培养模型 60页人才梯队建设与人才培养 果断收藏 今日头条 人才梯队建设与人才培养 目录 1 人才梯队建设理念 2 人才梯队建设路径 3 梯队人才培养内容与方法 团队总监以上人员管理不成熟的表现 1 无法从项目运作导向转变到战略
  • yolov5 deepsort 行人/车辆(检测 +计数+跟踪+测距+测速)

    功能 简介 实现了局域的出 入 分别计数 显示检测类别 ID数量 默认是 南 北 方向检测 若要检测不同位置和方向 需要加以修改 可在 count car traffic py 点击运行 默认检测类别 行人 自行车 小汽车 摩托车 公交车
  • C++开源序列化库:FStruct

    FStruct是一个用于C 对象 结构体 STL容器等 和json xml字符串之间进行转换的库 采用非入侵方式 无需在原有结构体上进行修改 目前支持基础类型 结构体 以及vector list deque set map等复杂数据类型的序
  • 【C语言】字符串函数介绍三(strstr、strtok、streeror)

    前言 之前我们用两篇文章介绍了strlen strcpy stract strcmp strncpy strncat strncmp这些函数 第一篇文章strlen strcpy stract 第二篇文章strcmp strncpy str
  • 2019年用户流失分析(五)——Python实现

    5 模型应用 选择4月份为正常状态的电视用户 计算他们的收视时长 收视在线天数 距最近一次收视时间 入网时长 用户主动办理次数和投诉与报障次数6个特征指标 利用构建好的用户流失模型预测5月份的用户流失情况 5 1 离网倾向阈值 在4月份为正