文档章节

为什么90%的人物画像都是没用的?

openfea
 openfea
发布于 2017/02/10 11:52
字数 1898
阅读 191
收藏 2

一提到“人物画像”,比较常见的解释是对人物或者事物进行特征化,但是您真的明白了吗?

它能在实践中起到什么作用?

它的构建思路是什么?

最终的结果是怎么出来的?

在构建画像的时候,我们应该注意什么?

今天我们就来填补这90%的空白,用OpenFEA作为分析、画像构建工具来答疑解惑。

一、人物画像概念及意义

为了让大家直白地理解“人物画像”,我举个例子来说明一下。如果您对历史感兴趣,熟悉三国演义中的人物,那么当您看到“素衣纶巾,手摇羽扇 ”形象时,马上就能想到诸葛亮,这就是诸葛亮这一人物的标签之一,如果再加上“草船借箭,舌战群儒”这样更为具体的标签,然后再将所有标签整合在一次,就形成了诸葛亮的“人物画像”。因此,也可以说人物画像就是判断一个人是什么样的人(兴趣爱好、行为习惯、标志性事件等)。

人物画像能对用户进行精确定位、统计分析,从而为精准营销等商业行为提供较大的帮助。比如,在产品还未定型的初创期,人物画像能进行业务经营分析以及竞争分析,帮助制定发展战略;在产品运营的成长期,能使产品的服务对象更加聚焦,更好地满足用户的需求,提升公司的经营效益;在产品成熟期,能帮助寻找新的增长点和突破口。

理解了人物画像是个什么东东后,我们接下通过教育行业的学生数据,来介绍人物画像的思路、实践过程及注意事项。

二、数据准备

先介绍一下本次数据构成:

1、充值记录数据:学生卡所有的充值记录(包括充值、补卡、补贴等信息);

2、消费记录数据:学生所有的消费地点、消费方式、消费金额等信息的记录;

3、学生成绩数据:通过获得学分的总和除学分总数获得排名;

4、宿舍入住数据:学生宿舍的进出数据;

5、图书馆借书数据:学生的借书记录;

6、图书馆进出数据:学生到图书馆的记录,有一部分没有分进出;

7、助学金数据:学生的助学金数据;

最终目标,为每个学生(大约为2万多个学生)都能展示7个维度,本文只讲思路,不讲代码。

三、画像构建思路

     人物画像的整体设计思路是把所有的维度集中在一张DF表中,一条记录就是一个学生的画像或者说一个学生的标签。步骤如下:

1. 载入studentIP_test.csv/subsidy_train.csv文件,去重,只保留学生ID列数据,即确定了哪些学生将被计算(生产人物画像),生产df表A;

2. 充值维度计算生成B表,总共充值多少、平均每次充值多少、最大充值金额,总共充值了多少次;

3. 消费维度计算生成C表,消费了多少次、方式消费有几种、消费平均金额、消费的最大值是多少、消费地方前5名、消费内容前5名(中间用“|”隔开);

4. 图书馆进出数据维度计算生成D表,进出多少次、在图书馆有多少天、学生平均在图书馆天数有多少,暂时不考虑在图书馆的总计时间;

5. 图书馆借书维度计算生成E表,借了多少本数、借书最多的种类有哪些(种类是指文学、数学等科目);

6. 宿舍维度计算生成F表,进多少次、出多少次、进与出差值是多少,在宿舍有多少天,晚归天数有多少,最后一天入住的时间是多少。

7. 助学金维度计算生成G表,直接加入助学金维度;

8. 全部通过id,使用左连接,进行合并生产X表;

四、画像实践

(一)消费维度的计算方法     

本次计算的难点在消费与充值维度上,总共有1.5G的数据。因为一开始单纯使用foreach为每个学生轮询计算,计算效率低下,后来重新使用cluster+foreach的办法,至少节省大约一半的时间。具体办法如下:

1. 定义10个引擎(define c1 as ip地址:端口号)。

2. 把2万多个学号,排序后分成10组,创建df表z,z的表结构是分组序号,开始序号,结束序号。

3. 创建一个新的脚本x.fea,让cluster调用x.fea。

4. 在x.fea脚本中,把传递进来的型号,直接创建foreach的运行母表y。

5. 再次新创建y.fea脚本,本脚本就是用于处理每个学生的就餐地点排名、消费种类排名等数据。

Cluster和foreach基本上用以上步骤来结合使用。

存在一些如下问题:

1.  10个引擎都要导入这1.5G的数据,导入内存大约需要7G。因为每个引擎的数据都是隔离的,而引擎之间没有公共的取数据区概念,导致重复导入9次。使用cluster并行计算后一下就使用掉63G的内存。

2. 使用foreach,循环体需尽量简短,才能增加效率。

(二)其他时间相关维度计算方法     

在宿舍、图书馆数据中,要计算在宿舍或者在图书馆天数的维度,需要以下两步操作:

1. 需要分割时间,保留天,例如2015/05/09 12:15:03,需要把12:15:03去除,保留2015/05/09 。

2. 需要多数据做两次group by 操作,第一次是学生号和时间,第二次是学生号。

(三)人物画像交互面板的设计

交互面板设计实践,主要是使用两个技巧性的东西,来避免存2万各ssdb key,说明如下:

1.  本次是使用随时计算来实时获取学生ID号的画像,都保存为一个KEY,本KEY值不带任何参数。也就是说你算完学号1,再算学号2时,学号2的信息会覆盖学号1的信息,那就避免了存2万ssdb key的尴尬。

2.  各维度合并后的df表X,每个记录就是一个画像,所以就必须有脚本来处理、拆分,使之符合人物画像的数据格式要求。所以交互面板调用的脚本,就是拆分记录的脚本。

五、画像结果输出

(一)各维度合并后的df表X

X表保存了,每个学生对应的各种维度。

(二)对学生ID分解后符合人物画像结构

主表的表结构,以及对应的记录。

 从表的表格以及记录。

(三)门户展示画像

六、总结

1、本文整体都是写分析思路,没有附带代码,如果有需要可以发邮件至fea@hzhz.co索取。

2、本文思路不一定是最好的,还是要大家多做实践,实践出真知。

3、各种维度的提取是预测或者说是机器学习的基础。

© 著作权归作者所有

openfea
粉丝 18
博文 86
码字总数 95615
作品 1
杭州
其他
私信 提问
用户角色模型 | 拒绝“我认为”的设计

接着我上周《用户体验旅程图 | 概念&实操&模板》的分享,现在让我们继续深入了解“用户角色模型”,看看它是如何为“目标导向设计”做贡献?如何为用户体验旅程图做指引的? 一、什么是用户角...

h梓暄
2018/11/26
0
0
DMP用户画像系统(SparkGraphX SparkCore SparkSQL)

DMP用户画像系统(SparkGraphX SparkCore SparkSQL) 课程观看地址:http://www.xuetuwuyou.com/course/221 课程出自学途无忧网:http://www.xuetuwuyou.com DMP系统 用户画像也称人物角色,...

含笑三步
2017/10/18
0
0
你以为自己真的了解用户画像?其实猫腻可多了

一、用户画像是什么? “用户画像”并不是最近才出现的,只是近几年谈得比较多。对用户进行画像分析就是将用户信息标签化的过程,打标签是为了帮助理解且方便计算机处理。除了分析数据源,“...

Data Analyst
2017/08/11
0
0
Echarts3.0中如何使坐标(0,0)的位置一直处于显示区域中心

@Kener-林峰 你好,想跟你请教个问题: 我在使用Echarts3.0时,使用了graph,自己写了个布局算法来实现每个node的坐标分布,但是不知道为什么,每次刷新数据,坐标原点都不在中心区域,跑到左...

Move_to_
2016/04/14
619
0
用户画像——persona分析法

一、什么是人物角色? 人物角色,即persona([pə:’səunə]),这里讨论的主要是web persona,是指针对网站目标群体真实特征的勾勒,是真实用户的综合原型。我们对产品使用者的目标、行为、...

袄淋披壳_sh
2017/12/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
259
5
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
5
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
8
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部