你好,我是邬凡奇,欢迎阅读我的博客,这是一篇基于手游行业的效果评价模型实战,数据全部来自真实生产环境,如果有疑问,可以给我留言

一、为什么要进行活动效果评价

在手游行业中,活动是提高用户参与度,加大用户粘性,提升收入的重要手段,而衡量活动效果的方式则多种多样,通常与活动的目标有关;如有的活动目标在于提高活跃,则活跃相关指标是评价这个活动效果的重要手段。对活动效果进行评价,得到评分,可以快速感知活动是否起了作用,在历史活动中处于什么位置,是否达到预期;

二、如何评价

本文采用标准差系数权重法,以本次活动为例进行活动效果的评价;以下是评价模型构建过程

1、评价指标选择

游戏的活动最终目的无非是两个:提升人气,提升收入
故本次评价指标选择了人气和收入的指标,分别是:
新增、活跃、流水、ARPU、付费率、转换老用户付费人数、转换老用户付费金额
其中:转换老用户付费的定义是,活动前已经是我们的免费用户,且用户生命周期>15天,在活动中进行了付费

2、对指标进行归一化

通常的归一化方法是使用Z=(x-μ)/标准差 ,此处也采用这个方法
x-数据值
μ-指标均值
补充归一化的意义:不同指标的单位,度量不同,要进行统一的计算,需要将其整理我相同量纲下的数据

3、计算指标的权重

step1:计算各指标的平均值、标准差
step2:得到离散系数:V=标准差/平均值
step3:权重系数=V/ΣV
step4:带入权重系数,计算最终的活动评分

4、为什么用标准差系数权重法确定权重?

原因是:标准差体现了数据的波动程度;在活动数据中,数据波动程度越大,说明受到活动的影响越大,因此需要更多的权重,以衡量活动的影响;
(此处可以用信息熵去衡量信息的含量,信息熵越大,信息越多,则权重应该越高)

三、开始实操吧

step1:获取源数据

sql从数据库中取出本年度历次活动的相关指标数据如下
经过和运营的同学讨论,由于游戏开服至今,活跃量、流水、付款人数等绝对值都受到时间周期的影响(如寒暑假),为了消除这种影响,我将数据指标换成活动开始后7天的:【次留率、付费活跃占比、付费率、ARPU、ARRPU、转换老用户数、转换老用户付费金额】;
为什么这么做呢?
1、时间长度统一限定为活动开始7天,避免有些活动时间长,累计的转换老用户数/金额较多,影响评价
2、其余指标均为比值,受到时间周期影响,绝对值指标有高有低,但比值结果可以客观反映指标高低

step2:进行模型计算

def get_active_score(_sheet_name):#读取数据data_source=get_data_source(_sheet_name)[['活动名称','开始时间','次留率','付费活跃占比','付费率','ARPU','ARPPU','转换老用户数','转换老用户付费金额']].rename(columns={'转换老用户付费金额':'转换老用户付费额'})#进行数据归一化--根据Z=(x-平均值)/标准差#获取指标名list_columns=list(data_source.columns)[1:]#求各指标均值means=pd.DataFrame(data_source.mean()).rename(columns={0:'平均值'})#求各指标标准差std=pd.DataFrame(data_source.std()).rename(columns={0:'标准差'})math_table=pd.merge(means.reset_index(),std.reset_index(),how='left',on='index').set_index('index')math_table=math_table[~math_table.index.str.contains('付费金额|付费人数|活跃量')]math_table['离散系数']=math_table['标准差']/math_table['平均值']math_table['权重系数']=math_table['离散系数']/math_table['离散系数'].sum()#对指标进行处理for i in list_columns[1:]:name=inew_name='s_'+ifinnal_name='score_'+imean_value=means.loc[i,'平均值']std_value=std.loc[i,'标准差']weight=math_table.loc[i,'权重系数']data_source[new_name]=data_source.apply(lambda x:(x[name]-mean_value)/std_value+100,axis=1)data_source[finnal_name]=data_source.apply(lambda x:x[new_name]*weight,axis=1)columns_info=pd.DataFrame(data_source.columns)finnal_column=list(columns_info[columns_info[0].str.contains('score')][0])score_table=data_source[['活动名称','开始时间']+finnal_column]score_table['最终得分']=score_table.apply(lambda x:x[finnal_column].sum(),axis=1)score_table.sort_values(by=['最终得分'],ascending=False)score_table.to_excel('active_scores{0}.xlsx'.format(_sheet_name))return score_table

最终结果如下:

模型的说明

本次实验中,全部选取活动开始后7天的数据,这是针对用户付费等行为集中发生在活动开始初期的活动类型;还有一些活动,他的衰减并不明显,整个活动周期内还会存在活动末期出现一波小高潮的情况,这个时候可以使用活动期间内的平均数据进行计算。

进行活动评价的时候,需要根据活动的实际规律调整选用的指标,不要生搬硬套哦~

活动效果评价模型--原理和实现(基于python)相关推荐

  1. 运营活动效果评估模型

    一.运营活动介绍 1.什么是运营? 从概念开始之后的计划.组织.实施控制的管理行为的总和. 2.运营活动的目标是什么? 3.运营活动有哪些方式? 4.如何策划一场运营活动? 明确性:活动目的要明确.比 ...

  2. word2vec原理及其实现(基于python)

    word2vec原理 词袋模型(bag of word)模型是最早的以词语为基本处理单元的文本向量化方法.举个简单的例子说明下. 假设有两个文本 John likes to watch movies, ...

  3. python智能机器人设计与实现_从AI模型到智能机器人:基于Python与TensorFlow

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  4. 基于Python的人脸表情管理系统设计与实现

    目 录 摘 要 I Abstract II 第一章 绪论 1 1.1 研究背景及意义 1 1.2 研究现状 1 1.3 本文研究的主要内容 3 第二章 人脸表情识别基础 4 2.1 常见的表情数据库 ...

  5. python基于rsa的数字签名实现_青岛宽客聚会期权定价公式基于python的实现

    点击上方蓝字,关注宽客空间 2020年8月16日,宽客空间走进石岭资产,参加了青岛宽客聚会的活动.本次活动分享题目为<期权定价公式基于python的实现>.本次活动的主讲人是来自青岛石岭资 ...

  6. 模型效果评价—混淆矩阵(原理及Python实现)

      对于分类模型,在建立好模型后,我们想对模型进行评价,常见的指标有混淆矩阵.KS曲线.ROC曲线.AUC面积等.也可以自己定义函数,把模型结果分割成n(100)份,计算top1的准确率.覆盖率.   ...

  7. 基于Python的足球团队合作评价模型及英文论文

    2020 美赛 F 奖论文(一):摘要.绪论和模型准备 2020 美赛 F 奖论文(二)︰传球网络模型(PNM)的建立和影响因子分析 2020 美塞 F 奖论文(三)∶ 足球团队指标和基于机器学习的球 ...

  8. 基于在线学习行为的评价模型的设计与实现

    基于在线学习行为的评价模型的设计与实现 1.评估模型的需求分析 学习评价是学习者在学习过程中非常重要的部分,但因为在线学习和传统学习方式在学习环境.方式上的区别,所以在传统方式中的评价模式不太适用于在 ...

  9. K-Means聚类算法 — 算法原理、质心计算、距离度量、聚类效果评价及优缺点

    分类知识   分类是根据样本某些属性或某类特征(可以融合多类特征),把样本类型归为已确定的某一类别中.机器学习中常见的分类算法有:SVM(支持向量机).KNN(最邻近法).Decision Tree( ...

  10. arcgis交通可达性分析步骤_【规划广角】街道慢行品质的多维度评价与导控策略——基于多源城市数据的整合分析...

    欢迎点击以上蓝色字体 关注规划师杂志 作者苏州规划设计研究院交通所所长.同济大学建筑与城市规划学院博士研究生樊钧,同济大学建筑与城市规划学院硕士研究生唐皓明,同济大学建筑与城市规划学院助理教授.硕士生 ...

最新文章

  1. layui栅格布局问题
  2. 敏捷个人2012.8月份线下活动报道:Toastmasters、团队管理
  3. poj 3660 Cow Contest
  4. c语言:输入两个正整数m和n,求其最大公约数和最小公倍数
  5. SQL优化常用方法41
  6. QT,QVector 基本用法,遍历[实例讲解]
  7. java应该学的基础东西
  8. 专业QA如何实施可靠的CI / CD管道?
  9. LeetCode 1277. 统计全为 1 的正方形子矩阵(DP)
  10. win10+deepin双系统安装方法(UEFI+GPT)
  11. python 除数总是提示为0_Python错误的处理方法
  12. android 计步功能原理,Android开发——计步功能
  13. 在windows server 2008 r2上安装nokia pc 套件
  14. 视频p2p php,m3u8视频播放器集成p2p加速源码分享
  15. 东芝机械手tspc安装_日本东芝工四轴机械手THL800
  16. 移动数据Moving Data
  17. Placeholder_2:0 is both fed and fetched
  18. oracle rac 心跳参数 misscount disktimeout
  19. ros入门保姆级教程之召唤小乌龟
  20. JQuery入门学习教程

热门文章

  1. rk3399 android 9.0 skype强制切换到前置摄像头
  2. hive插入多条数据sql_HIVE sql使用总结
  3. ssh “Missing privilege separation directory: /run/sshd“
  4. 微信问卷调查html,最详细测评!在微信里做问卷调查,这 4 款小程序你一定会用到...
  5. 清蒸野猪佩奇自带LastDance
  6. 双硬盘双系统解决引导在同一个分区的问题
  7. java实现奖学金申请,基于ssm+mysql的web助学金申请系统[实现过程记录]
  8. C语言中 \0 代表什么?
  9. android.media.MediaCodec$CodecException: Error 0xfffffc0e
  10. mysql中将大写日期转为小写日期