应用:如何校验用户画像的准确性?
在用户研究的课题中,用户画像是几乎每个公司都会去做的,浅层的包括统计类的:上月购买量,上周活跃天数等;深层的包括洞察类的:潜在需求偏好,生命周期阶段等;前者的校验简单,后者的校验需要通过一些特别的方式。本文就洞察类画像校验做一系列的梳理。
省略掉预处理设计的过程,画像校验的步骤主要集中在画像开发,画像上线,画像更新中,并且三个阶段中,每个阶段的校验方式完全不同
一、用户画像开发中
当我们所开发的用户画像是类似于用户的下单需求、用户的购车意愿、用户是否有注册意愿这一类存在历史的正负样本的有监督的问题,我们可以利用历史确定的数据来校验我们的画像准确性。比如,银行在设计用户征信的画像前,会有一批外部购买的坏样本和好样本,其实画像问题就转化为分类问题去解决评估了。 1.1 Recall、Pecision、K-S、F1曲线、Roc曲线、Confusion Matrix、AUC 针对这类问题,已经有较为成熟的理论基础,直接利用测试样本判断的准确程度判断画像是否准确
这张图是一张非常常见也是有效的来总结Recall、Pecision、Lift曲线、Roc曲线、Confusion Matrix的图。
FPR = FP/(FP + TN)
Recall=TPR=TP/(TP+FN)
Precision=TP/(TP+FP)
F1曲线:2*
Precision*
Recall/(Precision+Recall)
Roc曲线:TPR vs FPR,也就是Precision vs Recall
Auc:area under the roc curve ,也就是roc曲线下面的面积,积分或者投点法均可求解。
这边不详细讲细节,需要的可以参考精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
1.2 交叉验证 并不是所有画像都是有监督训练的画像,举个例子,用户的性别画像,是一个无监督的刻画,当你无法通过app端资料填写直接获取到的时候,你只能够通过其他数据特征的对用户进行分群。
input :
Data Set:测试数据集
output :
model:画像模型
label:0(无效),1(有效)
methods:
1.从原始数据集中确定画像模型关键features
2.关键features分层,分为train features、test features
3.train featrues训练画像
4.test freatrues校验画像
5.输出值对(model,label)
6.重复2~5
首先,我们在总的数据集中筛选出所有关键影响特征,每次将筛选出的特征分为两块,测试特征训练特征,利用训练特征建立模型,再利用测试特征去判断模型是否合理(比如女鞋用户群的女鞋购买次数小于男性用户群,则次模型异常,删除),最后集成所有合理模型。 这样的逻辑中,我们将所有异常不合理的模型全部剔除,训练过程中就校验了用户画像的准确性
二、用户画像上线后
1.ABTest
不得不说,abtest是用户画像校验最为直观有效的校验方式。
用户分流模块:
methods:
1. 全量用户流量为Users,切分流量为三块Users:A1、Users:A2、Users:B,且满足Users:A1+Users:A2=Users:B
2. 对流量Users:A1、Users:A2不做任何动作
3. 对流量Users:B做相应的模型预测,保存结果
4. 以用户活跃度为例子,选取观察日期周下平均登陆次数y为代价函数,
if y(Users:A1)=y(Users:A2)then
if y(Users:B)> y(Users:A1+Users:A2)
then 模型有效(差值越大代表准确越高)
else 模型无效(差值越小代表准确越差)
else 模型无效
5.准确程度量化:K=(p*exp(-(dist(y(Users:B),y(Users:A1+Users:A2)))^2/(2*最小容忍度^2)))^(-1)
一句话解释,就是A1=A2保证分配随机,A3好于A1+A2的效果检验画像是否准确?多准确?
三、用户画像更新
用户回访
在画像刻画完成后,必然会存在画像优化迭代的过程,客服回访是非常常见且有效的方式。 比如,我们定义了一波潜在流失用户10万人,随机抽取1000人,进行回访,根据回访结果做文本挖掘,提取关键词,看消极词用户的占比;
这个图随机找的,别在意
机制检测
再比如,我们定义了一波忠诚用户10万人,随机抽取100人,后台随机获取用户安装app的列表,看用户同类app的下载量数目的分布;
横轴为用户手机中同类竞品安装量的个数,纵轴为对应的随机抽样的100人中的个数 人群1分布为忠诚用户画像最准确的,同类app下载量集中在1附近,定义的用户极为准确 人群2分布杂乱,人群3分布在下降量异常高的数值附近,定义人群不准确 用户画像是数据运营运营的基础,也是做深度挖掘的一个不可或缺的模块,只有先打好画像基础,确保画像质量,后续的深挖行为才有突破的可能,最后,谢谢大家阅读。
- 【深度学习系列】用PaddlePaddle进行车牌识别(一)
- GO语言-new()分配与构造和初始化结构
- Java基础-day05-超市收银系统案例题
- mongodb11天之屠龙宝刀(五)lbs地理位置检索:存储经纬度以及查询
- 【深度学习系列】关于PaddlePaddle的一些避“坑”技巧
- 【深度学习系列】PaddlePaddle可视化之VisualDL
- Java基础-day04-代码题
- 【深度学习系列】CNN模型的可视化
- mongodb11天之屠龙宝刀(六)mapreduce:mongodb中mapreduce原理与操作案例
- 真实场景的虚拟视点合成(View Synthsis)详解
- mongodb11天之屠龙宝刀(七)functions: mongodb 执行 functions入门案例
- 真实场景的双目立体匹配(Stereo Matching)获取深度图详解
- mongodb11天之屠龙宝刀(八)聚合函数与管道:sql与mongodb聚合函数对比
- Java基础-day04-基础题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux系统交换空间介绍
- 小内存服务器上宝塔默认安装的MySQL如何优化配置
- (译)SDL编程入门(15)旋转和翻转
- linux解决ping通但端口不通的问题
- (译)SDL编程入门(13)透明度混合
- 基于centos宝塔面版的安装Discuz! Q方法
- 如何在Linux中的特定时间运行命令
- composer 安装过程中,提示404错误
- Linux初始化系统盘后重新挂载数据盘方法
- 在页面部分没有发现字符集声明,请增加该声明
- Linux使用Sudo委派权限
- linux实现定时备份mysql数据库的简单方法
- linux确认已经卸载数据盘并可以新建自定义镜像
- 在Linux中查看进程占用的端口号
- Linux里Makefile是什么?它是如何工作的?