淘宝电商搭建用户画像标签体系


一、项目介绍

    该项目数据来源于阿里天池——淘宝应用上的用户行为数据:https://tianchi.aliyun.com/dataset/dataDetail?dataId=46

    代码地址:https://github.com/LittleStarYing/taobao.git

    数据集由阿里巴巴集团提供,这里我只采用了其第一部分数据集D。

    其数据集详细信息如下:


字段表信息

二、用户画像标签体系介绍

    用户画像的核心在于给用户“打标签”,每一个标签通常是人为规定的特征标识,用高度精炼的特征描述一类人,例如年龄、性别、兴趣偏好等,不同的标签通过结构化的数据体系整合,就可与组合出不同的用户画像。

    梳理标签体系是实现用户画像过程中最基础、也是最核心的工作,后续的建模、数据仓库搭建都会依赖于标签体系。

    为什么需要梳理标签体系,因为不同的企业做用户画像有不同的战略目的,广告公司做用户画像是为精准广告服务,电商做用户画像是为用户购买更多商品,内容平台做用户画像是推荐用户更感兴趣的内容提升流量再变现,金融行业做用户画像是为了寻找到目标客户的同时做好风险的控制。

    所以第一步,我们要结合所在的行业,业务去分析我们用户画像的目的。这其实就是战略,我们要通过战略去指引我们最终的方向。


    对于电商企业来说,可能最重要的两个问题就是:

    现有用户- 我的现存用户是谁?为什么买我的产品?他们有什么偏好?哪些用户价值最高?

    潜在客户- 我的潜在用户在哪儿?他们喜欢什么?哪些渠道能找到他们?获客成本是多少?

    而对于金融企业,还要加上一条:

    用户风险—用户的收入能力怎么样?他们是否有过贷款或者信用卡的逾期?他们的征信有问题吗?

    我们做用户画像的目的也就是根据我们指定的战略方向最终去解决这些问题。

    在梳理标签的过程还要紧密的结合我们的数据,不能脱离了数据去空想,当然如果是我们必须要的数据,我们可能需要想办法去获取这些数据,这就是数据采集的问题,我们之后会深入的讨论。

    先展示两种常见的标签体系,随后我们将按步骤建立我们的标签体系。

电商类标签体系

    

电商类标签体系

    可以看到电商类的标签体系,更关注用户的属性,行为等等信息。那么我们需要的数据也就来源于用户可提供的基本信息,以及用户的行为信息,这些我们可以通过埋点获取,而用户的订单情况也是非常的重要的标签。

 金融类标签体系

    

金融类标签体系

    对于金融行业,最明显的区别是增加了用户的价值和用户风险的信息。这些信息在用户申请贷款时一般都可以提供,还有很多信息需要通过征信获取。

    最终,不管是电商还是金融或者其他领域,我们都可以通过数据对用户进行画像,最终建立标签体系,影响我们的业务,最终实现战略目的。

    下面我们来具体看一下如何一步步的分析建立整体标签体系。

标签的维度与类型

    在我们建立用户标签时,首先要明确基于哪种维度去建立标签。

    一般除了基于用户维度(userid)建立用户标签体系外,还有基于设备维度(cookieid)建立相应的标签体系,当用户没有登录设备时,就需要这个维度。当然这两个维度还可以进行关联。

    而两者的关联就是需要ID-Mapping算法来解决,这也是一个非常复杂的算法。更多的时候我们还是以用户的唯一标识来建立用户画像。

    而标签也分为很多种类型,这里参照常见的分类方式,

    从对用户打标签的方式来看,一般分为三种类型:1、基于统计类的标签;2、基于规则类的标签、3、基于挖掘类的标签。下面我们介绍这三种类型标签的区别:

    统计类标签:这类标签是最为基础也最为常见的标签类型,例如对于某个用户来说,他的性别、年龄、城市、星座、近7日活跃时长、近7日活跃天数、近7日活跃次数等字段可以从用户注册数据、用户访问、消费类数据中统计得出。该类标签构成了用户画像的基础;

    规则类标签:该类标签基于用户行为及确定的规则产生。例如对平台上“消费活跃”用户这一口径的定义为近30天交易次数>=2。在实际开发画像的过程中,由于运营人员对业务更为熟悉、而数据人员对数据的结构、分布、特征更为熟悉,因此规则类标签的规则确定由运营人员和数据人员共同协商确定;

    机器学习挖掘类标签:该类标签通过数据挖掘产生,应用在对用户的某些属性或某些行为进行预测判断。例如根据一个用户的行为习惯判断该用户是男性还是女性,根据一个用户的消费习惯判断其对某商品的偏好程度。该类标签需要通过算法挖掘产生。

    标签的类型是对标签的一个区分,方便我们了解标签是在数据处理的哪个阶段产生的,也更方便我们管理。

标签分级分类

    标签需要进行分级分类的管理,一方面使得标签更加的清晰有条件,另一方面也方便我们对标签进行存储查询,也就是管理标签。

    

标签分类级别

    用户画像体系和标签分类从两个不同角度来梳理标签,用户画像体系偏战略和应用,标签分类偏管理和技术实现侧。

    把标签分成不同的层级和类别,一是方便管理数千个标签,让散乱的标签体系化;二是维度并不孤立,标签之间互有关联;三可以为标签建模提供标签子集。

    梳理某类别的子分类时,尽可能的遵循MECE原则(相互独立、完全穷尽),尤其是一些有关用户分类的,要能覆盖所有用户,但又不交叉。比如:用户活跃度的划分为核心用户、活跃用户、新用户、老用户、流失用户,用户消费能力分为超强、强、中、弱,这样按照给定的规则每个用户都有分到不同的组里。

标签命名

    标签的命名也是为了我们可以对标签进行统一的管理,也更好识别出是什么标签。

    这是一种非常好的命名方式,解释如下:

    标签主题:用于刻画属于那种类型的标签,如用户属性、用户行为、用户消费、风险控制等多种类型,可用A、B、C、D等 字母表示各标签主题;

    标签类型:标签类型可划为分类型和统计型这两种类型,其中分类型用于刻画用户属于哪种类型,如是男是女、是否是会员、 是否已流失等标签,统计型标签用于刻画统计用户的某些行为次数,如历史购买金额、优惠券使用次数、近30日登陆次数等 标签,这类标签都需要对应一个用户相应行为的权重次数;

    开发方式:开发方式可分为统计型开发和算法型开发两大开发方式。其中统计型开发可直接从数据仓库中各主题表建模加工 而成,算法型开发需要对数据做机器学习的算法处理得到相应的标签;

    是否互斥标签:对应同一级类目下(如一级标签、二级标签),各标签之间的关系是否为互斥,可将标签划分为互斥关系和 非互斥关系。例如对于男、女标签就是互斥关系,同一个用户不是被打上男性标签就是女性标签,对于高活跃、中活跃、低 活跃标签也是互斥关系;

    用户维度:用于刻画该标签是打在用户唯一标识(userid)上,还是打在用户使用的设备(cookieid)上。可用U、C等字 母分别标识userid和cookieid维度。

三、指标构建

    主要从用户行为、用户属性这2个维度为每个用户构建标签画像:

    

用户行为
用户属性

    搭建的用户标签如下表:

用户标签

四、代码实现

    代码实现流程如下图:


流程

导入所需库,读取数据

1.数据预处理


①数据抽取


②缺失值处理



③日期与时间的处理


④制作用户标签


2.用户行为标签

这部分只做部分代码思路讲解,给出第一部分的示例。

①用户时间段分布

用户浏览活跃时间段

第一步:最用户和时段分组,统计浏览次数。使用函数:groupby 、count、reset_index


第二步:列重命名。使用函数:rename


第三步:统计每个用户浏览次数最多的时段。使用函数:groupby、max、reset_index


第四步:列重命名。使用函数:rename


第五步:拼接原表和计算表。使用函数:merge


第六步:选取各用户浏览次数最多的时段,如有并列最多的时段,用逗号连接。使用函数:loc、groupby、aggreate、reset_index

time_browse_hour = time_browse.loc[time_browse['hour_counts']==time_browse['read_counts_max'],'hour'].groupby(time_browse['user_id']).aggregate(lambda x:','.join(x)).reset_index()

第七步:将用户浏览活跃时间段加入到用户标签表中


用户购买活跃时间段

步骤同上,这里不做赘述


最后清除缓存


用户倾向周几浏览


用户倾向周几购买


②关于类目的用户行为


浏览最多的类目

这里需要注意的是,一定要先将df_most_cate_browse['item_category']转换成str类型,不然直接做join的话会拼接category类型,出现问题,得到非预期值

收藏最多的类目

        代码略

加购最多的类目

        代码略

购买最多的类目

        代码略

③30天用户行为

        数据集中的数据正好是一个月,30天的数据,即整个数据集的数据

近30天购买次数

近30天加购次数

近30天活跃天数

④7天用户行为

近7天购买次数

        代码略

近7天加购次数

        代码略

近7天活跃天数

        代码略

⑤最后一次行为距今天数

上一次浏览距今天数

days_browse = df[df['behavior_type']==1].groupby('user_id')['date'].max().apply(lambda x:(datetime.strptime('2014-12-19','%Y-%m-%d')-x).days)

上次加购距今天数

        代码略

上次购买距今天数

        代码略

⑥其他

最近两次购买间隔天数

是否浏览未下单

是否加购未下单

3.用户属性标签

①是否复购用户


②访问活跃度


30天内访问次数与访问人数的关系

上图可知,访问次数多的访客比访问次数少的访客数量多,且在20次左右为拐点,因此定义访问次数小于等于18次的为低活跃度,访问次数大于18次定义为高活跃度。 该图中,访问次数多的客户比访问次数少的客户数量多,与绝大多数产品访问规律相反。从侧面反映了淘宝的用户粘性强。

③购买活跃度

30天内购买次数与购买人数的关系

14次左右是一个拐点,因此定义购买次数小于等于14次为低活跃,大于14次为高活跃。 此定义只是从用户的角度触发,工作中当从业务出发定义是否活跃

④购买的品类是否单一

⑤用户价值分组(RFM)

因为没有消费金额特征,所以这里只最近一次交易(上一次购买距今天数)和交易频率(购买活跃度)两个维度分析两个维度分析:

最后一次购买距今天数与购买人数的关系

ps:异常点为双12

最后保存数据为csv文件


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342