实战|淘宝用户行为分析案例

一、项目背景

本数据报告以淘宝app平台为数据集,通过行业的指标对淘宝用户行为进行分析,从而探索淘宝用户的行为模式,具体指标包括:日PV和日UV分析,付费率分析,复购行为分析,漏斗流失分析和用户价值RFM分析。

二、数据来源

https://tianchi.aliyun.com/dataset/dataDetail?dataId=46&userId=1

三、提出问题

1.日PV有多少

2.日UV有多少

3.付费率情况如何

4.复购率是多少

5漏斗流失情况如何

6.用户价值情况

四、理解数据

本数据集共有104万条左右数据,数据为淘宝APP2014年11月18日至2014年12月18日的用户行为数据,共计6列字段,列字段分别是:

user_id:用户身份,脱敏

item_id:商品ID,脱敏

behavior_type:用户行为类型(包含点击、收藏、加购物车、支付四种行为,分别用数字1、2、3、4表示)

user_geohash:地理位置

item_category:品类ID(商品所属的品类)

time:用户行为发生的时间

五、数据清洗

In [1]:

import pandas as pd

import numpy as py

%matplotlib inline

import matplotlib.pyplot as plt

import seaborn as sns

data_user = pd.read_csv('你的数据集位置')

In [2]:

#缺失值处理

missingTotal = data_user.isnull().sum()

missingExist = missingTotal[missingTotal>0]

missingExist = missingExist.sort_values(ascending=False)

In [3]:

print(missingExist)
user_geohash    8334824
dtype: int64

In [4]:

print(missingTotal)
user_id                0
item_id                0
behavior_type          0
user_geohash     8334824
item_category          0
time                   0
dtype: int64

存在缺失值的是User_geohash,有717785条,不能删除缺失值,因为地理信息在数据集收集过程中做过加密转换,因此对数据集不做处理。

In [5]:

data_user.head()

Out[5]:


user_iditem_idbehavior_typeuser_geohashitem_categorytime
0980478372324315621NaN42452014-12-06 02
1977261363835835901NaN58942014-12-09 20
298607707647497121NaN28832014-12-18 11
398662432320593836196nn52n65622014-12-06 10
4981459082902085201NaN139262014-12-16 21

In [6]:

#一致化处理

import re

#拆分数据集

data_user['date'] = data_user['time'].map(lambda s: re.compile(' ').split(s)[0])

In [7]:

data_user['hour']=data_user['time'].map(lambda s:re.compile(' ').split(s)[1])

data_user.head()

Out[7]:


user_iditem_idbehavior_typeuser_geohashitem_categorytimedatehour
0980478372324315621NaN42452014-12-06 022014-12-0602
1977261363835835901NaN58942014-12-09 202014-12-0920
298607707647497121NaN28832014-12-18 112014-12-1811
398662432320593836196nn52n65622014-12-06 102014-12-0610
4981459082902085201NaN139262014-12-16 212014-12-1621

In [8]:

#查看data_user数据集数据类型:

data_user.dtypes

Out[8]:

user_id           int64
item_id           int64
behavior_type     int64
user_geohash     object
item_category     int64
time             object
date             object
hour             object
dtype: object

In [9]:

#发现time列和date列应该转化为日期类数据类型,hour列应该是字符串数据类型。

#数据类型转化

data_user['date']=pd.to_datetime(data_user['date'])

data_user['time']=pd.to_datetime(data_user['time'])

data_user['hour']=data_user['hour'].astype('int64')

data_user.dtypes

Out[9]:

user_id                   int64
item_id                   int64
behavior_type             int64
user_geohash             object
item_category             int64
time             datetime64[ns]
date             datetime64[ns]
hour                      int64
dtype: object

In [10]:

#异常值处理

data_user = data_user.sort_values(by='time',ascending=True)

data_user = data_user.reset_index(drop=True)

data_user.describe()

Out[10]:


user_iditem_idbehavior_typeitem_categoryhour
count1.225691e+071.225691e+071.225691e+071.225691e+071.225691e+07
mean7.170732e+072.023084e+081.105271e+006.846162e+031.481799e+01
std4.122920e+071.167397e+084.572662e-013.809922e+036.474778e+00
min4.913000e+036.400000e+011.000000e+002.000000e+000.000000e+00
25%3.584965e+071.014130e+081.000000e+003.721000e+031.000000e+01
50%7.292804e+072.021359e+081.000000e+006.209000e+031.600000e+01
75%1.073774e+083.035405e+081.000000e+001.029000e+042.000000e+01
max1.424559e+084.045625e+084.000000e+001.408000e+042.300000e+01

通过观察数据集的四分位数,总数,平均值,方差等,发现数据集并无异常值存在。

六、用户行为分析

(1)pv和uv分析

PV(访问量):即Page View, 具体是指网站的是页面浏览量或者点击量,页面被刷新一次就计算一次。

UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。

1)日访问量分析

In [11]:

#pv_daily记录每天用户操作次数,uv_daily记录每天不同的上线用户数量

pv_daily=data_user.groupby('date')['user_id'].count().reset_index().rename(columns={'user_id':'pv'})

uv_daily=data_user.groupby('date')['user_id'].apply(lambda x:x.drop_duplicates().count()).reset_index().rename(columns={'user_id':'uv'})

fig,axes=plt.subplots(2,1,sharex=True)

pv_daily.plot(x='date',y='pv',ax=axes[0])

uv_daily.plot(x='date',y='uv',ax=axes[1])axes[0].set_title('pv_daily')

Out[11]:

Text(0.5, 1.0, 'pv_daily')

结果显示如上图所示,在双十二期间,pv和uv访问量达到峰值,并且可以发现,uv和pv两个访问量数值差距比较大,同时,因为数据集总人数大约是10000人左右,因此,通过nv值可以分析出双十二期间淘宝用户的日活跃大概是45%浮动。

In [12]:

#小时访问量分析#pv_hour记录每小时用户操作次数,uv_hour记录每小时不同的上线用户数量

pv_hour=data_user.groupby('hour')['user_id'].count().reset_index().rename(columns={'user_id':'pv'})

uv_hour=data_user.groupby('hour')['user_id'].apply(lambda x:x.drop_duplicates().count()).reset_index().rename(columns={'user_id':'uv'})

fig,axes=plt.subplots(2,1,sharex=True)

pv_hour.plot(x='hour',y='pv',ax=axes[0])uv_hour.plot(x='hour',y='uv',ax=axes[1])

axes[0].set_title('pv_hour')

axes[1].set_title('uv_hour')

Out[12]:

Text(0.5, 1.0, 'uv_hour')

图表显示:pv和uv在凌晨0-5点期间波动情况相同,都呈下降趋势,访问量都比较小,同时在晚上18:00左右,pv波动情况比较剧烈,相比来看uv不太明显,因此晚上18:00以后是淘宝用户访问app的活跃时间段。

In [13]:

#不同行为类型用户pv分析

pv_detail=data_user.groupby(['behavior_type','hour'])['user_id'].count().reset_index().rename(columns={'user_id':'total_pv'})

fig,axes=plt.subplots(2,1,sharex=True)

sns.pointplot(x='hour',y='total_pv',hue='behavior_type',data=pv_detail,ax=axes[0])

sns.pointplot(x='hour',y='total_pv',hue='behavior_type',data=pv_detail[pv_detail.behavior_type!=1],ax=axes[1])

axes[0].set_title('pv_different_behavior_type')

axes[1].set_title('pv_different_behavior_type_except1')

Out[13]:

Text(0.5, 1.0, 'pv_different_behavior_type_except1')

有图表显示:点击这一用户行为相比较于其他三类用户行为,pv访问量较高,同时四种用户行为的波动情况基本一致,因此晚上这一时间段不管哪一种用户行为,pv访问量都是最高的。从图2可以看出,加入购物车这一用户行为的pv总量高于收藏的总量,因此在后续漏斗流失分析中,用户类型3应该在2之前分析。

七、用户消费行为分析

In [14]:

#(1)用户购买次数情况分析

data_user_buy=data_user[data_user.behavior_type==4].groupby('user_id')['behavior_type'].count()

sns.distplot(data_user_buy,kde=False)plt.title('daily_user_buy')

Out[14]:

Text(0.5, 1.0, 'daily_user_buy')

图表显示:淘宝用户消费次数普遍在10次以内,因此需要重点关注购买次数在10次以上的消费者用户群体。

(2)日ARPPU

ARPPU(average revenue per paying user)是指从每位付费用户身上获得的收入,它反映的是每个付费用户的平均付费额度。

ARPPU=总收入/活跃用户付费数量

因为本数据集中没有消费金额,因此在计算过程中用消费次数代替消费金额

人均消费次数=消费总次数/消费人数

In [21]:

data_use_buy1=data_user[data_user.behavior_type==4].groupby(['date','user_id'])['behavior_type'].count().reset_index().rename(columns={'behavior_type':'total'})

data_use_buy1.groupby('date').apply(lambda x:x.total.sum()/x.total.count()).plot()

plt.title('daily_ARPPU')

Out[21]:

Text(0.5, 1.0, 'daily_ARPPU')

图表显示:平均每天消费次数在1-2次之间波动,双十二期间消费次数达到最高值。

In [23]:

#(3)日ARPU#ARPU(Average Revenue Per User) :平均每用户收入,可通过 总收入/AU 计算得出。它可以衡量产品的盈利能力和发展活力。#活跃用户数平均消费次数=消费总次数/活跃用户人数(每天有操作行为的为活跃)

data_user['operation']=1

data_use_buy2=data_user.groupby(['date','user_id','behavior_type'])['operation'].count().reset_index().rename(columns={'operation':'total'})

data_use_buy2.groupby('date').apply(lambda x:x[x.behavior_type==4].total.sum()/len(x.user_id.unique())).plot()

plt.title('daily_ARPU')

Out[23]:

Text(0.5, 1.0, 'daily_ARPU')

In [24]:

#(4)付费率#付费率=消费人数/活跃用户人数

data_use_buy2.groupby('date').apply(lambda x:x[x.behavior_type==4].total.count()/len(x.user_id.unique())).plot()

plt.title('daily_afford_rate')

Out[24]:

Text(0.5, 1.0, 'daily_afford_rate')

In [25]:

#(5)同一时间段用户消费次数分布

data_user_buy3=data_user[data_user.behavior_type==4].groupby(['user_id','date','hour'])['operation'].sum().rename('buy_count')

sns.distplot(data_user_buy3)

print('大多数用户消费:{}次'.format(data_user_buy3.mode()[0]))

大多数用户消费:1次

八、复购情况分析

In [26]:

#复购情况,即两天以上有购买行为,一天多次购买算一次#复购率=有复购行为的用户数/有购买行为的用户总数

date_rebuy=data_user[data_user.behavior_type==4].groupby('user_id')['date'].apply(lambda x:len(x.unique())).rename('rebuy_count')

print('复购率:',round(date_rebuy[date_rebuy>=2].count()/date_rebuy.count(),4))

复购率: 0.8717

In [29]:

#所有复购时间间隔消费次数分布

data_day_buy=data_user[data_user.behavior_type==4].groupby(['user_id','date']).operation.count().reset_index()

data_user_buy4=data_day_buy.groupby('user_id').date.apply(lambda x:x.sort_values().diff(1).dropna())

data_user_buy4=data_user_buy4.map(lambda x:x.days)data_user_buy4.value_counts().plot(kind='bar')

plt.title('time_gap')

plt.xlabel('gap_day')

plt.ylabel('gap_count')

Out[29]:

Text(0, 0.5, 'gap_count')

多数用户复购率为0.4693,消费次数随着消费时间间隔的增加而不断下降,在1-10天之内复购次数比较多,10天之后复购次数淘宝用户很少在进行复购,因此需要重视10天之内的淘宝用户复购行为,增加用户复购。不同用户平均复购时间呈正态分布,但是总体来看,呈现逐渐下降趋势。多数淘宝用户平均复购时间集中在1-5天时间间隔内。

九、漏斗流失分析

漏斗分析是一套流程式数据分析,它能够科学反映用户行为状态以及从起点到终点各阶段用户转化率情况的重要分析模型。

In [30]:

data_user_count=data_user.groupby(['behavior_type']).count()data_user_count.head()

pv_all=data_user['user_id'].count()

print(pv_all)

12256906

In [31]:

#十、用户行为与商品种类关系分析#不同用户行为类别的转化率

data_category=data_user[data_user.behavior_type!=2].groupby(['item_category','behavior_type']).operation.count().unstack(1).rename(columns={1:'点击量',3:'加入购物车量',4:'购买量'}).fillna(0)

data_category.head()

Out[31]:

behavior_type点击量加入购物车量购买量
item_category


23.00.00.0
33.00.00.0
41.00.00.0
610.00.00.0
8976.04.04.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15401.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

连ChatGPT都不懂的五一调休,到底怎么来的?

今天是周几? 你上了几天班了? 还要上几天班放假? 五一啥安排? 出行的票抢到了吗? 调休到底是谁发明的?! 五一劳动节是要劳动吗? 为什么昨天是周一,今天还是周一&a…

8+基于机器学习算法非肿瘤分析生信文章,简单实验验证即可实现

公众号 01 科研背景 生物医学是综合医学、生命科学和生物学的理论和方法而发展起来的前沿交叉学科,基本任务是运用生物学及工程技术手段研究和解决生命科学,特别是医学中的有关问题。机器学习技术能利用复杂的算法在大规模、异质性数据集中进行运行,在生物医学方面…

Nature:药物研发里程碑技术

科研背景 生物医学是综合医学、生命科学和生物学的理论和方法而发展起来的前沿交叉学科,基本任务是运用生物学及工程技术手段研究和解决生命科学,特别是医学中的有关问题。机器学习技术能利用复杂的算法在大规模、异质性数据集中进行运行,在生物医学方面、人类基因…

全网最详细部署配置中科大chatgpt学术优化环境

目录 前期准备工作修改config_private.py文件创建私钥配置代理网络的地址 前期准备工作 项目地址: https://github.com/binary-husky/gpt_academic 使用git下载到本地 git clone https://github.com/binary-husky/gpt_academic.git使用conda创建虚拟环境chatgpt-academic …

基于Qt的镜面翻转桌面小程序

目录 引言捕获窗口定时触发全屏切换附录参考 个人博客:https://braised-lamb.github.io/ 引言 windows桌面可以横向、纵向翻转显示桌面,但是不能对屏幕进行镜像翻转,当然基本上也不会有人有这种奇怪的需求。UltraMon可以实现这个功能&#x…

低代码?首个基于ChatGPT的自然语言开发框架PromptAppGPT:全自动编译、运行、界面生成...

点击关注公众号:互联网架构师,后台回复 2T获取2TB学习资源! 上一篇:Alibaba开源内网高并发编程手册.pdf 首个自研全开源自然语言低代码GPT应用快速开发框架——PromptAppGPT来了! 最近,CCF理论计算机科学技…

九大思维框架:让你ChatGPT使用能力提升百倍

今天给大家分享9个常用的prompt的思维模型,便于大家快速的去掌握如何高效的使用ChatGPT 一、 APE模型 "行动(Action)、目的(Purpose)、期望(Expectation)"(APE)的模型是一个非常实用的决策和沟通工具,用于明确行动、目标和期望。 行动(Action):这是指…

首个基于ChatGPT的自然语言开发框架PromptAppGPT:全自动编译、运行、界面生成

来源:新智元 【导读】首个自研全开源自然语言低代码GPT应用快速开发框架——PromptAppGPT来了! 最近,CCF理论计算机科学技术委员会委员张长旺,开发了一个基于低代码提示语的快速应用开发框架PromptAppGPT,可以实现基于…

声称或超越GPT-4!谷歌PaLM 2:全面向ChatGPT微软开炮

明敏 丰色 发自 凹非寺 量子位 | 公众号 QbitAI 万众瞩目,谷歌的反击来了。 现在,谷歌搜索终于要加入AI对话功能了,排队通道已经开放。 当然这还只是第一步。 大的还在后面: 全新大语言模型PaLM 2正式亮相,谷歌声称它…

Prompt Engineering 写作准则与应用示例集

文章目录 0 优质Prompt 模版网站0.1 aimappro0.2 AI Short 1 写作规范与准则1.1 定界符的应用:分割指令与素材1.2 ChatGPT 保存对话框,保留历史信息1.3 通过Prompt让llm反思1.4 明确告诉LLM你需要正确的答案1.5 控制输出内容格式1.6 Prompt安全策略1.6.1…

用AI帮助小学一年级记住常用字

这几天娃就要一年级毕业放假了,感觉时间过得太快了。再开学就要上二年级,可汉字表上的区区三四百字,咋就那么的难读?难记?喊他们来认字,拉都拉不过来。哎,愁啊,替他们焦虑。突发奇想…

GPT中的temperature参数不是用在对话的而是用在调用OPEN API过程中的

前言 自从吴恩达OPENAI《ChatGPT 提示工程》放出后,各个层面反响热列。很多人看到了temperature这个参数,都以为在对话中或者说对话的末尾放上一个temperature=0-2的值就可以达到让GPT极大的发挥出自我创造能力、甚至写文章天马行空。 笔者这边觉得有义务指出这种用法是完全…

ChatGPT引AI大牛新老之争?谷歌钢铁侠速归救火;Prime Air首飞业绩捉急

本周AI业界有哪些新鲜事? AI开发者 ChatGPT大火,引发AI大牛新老之争? ChatGPT大火之后,AI大牛团又喜提一位传奇少年:Sam Altman。除了16岁出柜,20岁和男友一同当上CEO这样的轶事,这位大佬近日还…

unapp微信小程序转发分享、携带参数

一、第一种方式: // 开启小程序原生右上角分享按钮uni.showShareMenu({// https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.htmlwithShareTicket: true,menus: [shareAppMessage, shareTimeline]//开启转发好友和转发朋友圈按钮});…

暂停GPT-5研发呼吁引激战!吴恩达、LeCun带头反对,Bengio站队支持

【导读】千人签名的AI不扩散条约发布一天后,各路大佬纷纷有了后续回应,言谈间耐人寻味。「AI吹哨人」:不封杀超强AI研发,我们都得死! 昨天,千位大佬写的暂停超强AI训练六个月的联名信,如同一枚…

Yann LeCun:ChatGPT缺乏创新,没什么革命性;

来源:机器之心 在外界看来,ChatGPT 是一项巨大突破,但图灵奖得主、Meta 首席人工智能科学家 Yann LeCun 不这么认为。 自从去年底推出以来,对话式 AI 模型 ChatGPT 火遍了整个社区。 用过 ChatGPT 的人都能体会到,它是…

LeCun和马库斯齐喷ChatGPT:大语言模型果然是邪路?

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【计算机视觉】微信技术交流群 转载自:新智元 【导读】大语言模型在祛魅,媒体忽然开始追捧起了LeCun,而马库斯跳出来说,他的观…

LeCun再爆金句:ChatGPT?连条狗都比不上!语言模型喂出来的而已

【导读】LeCun昨天在一场辩论中再贬ChatGPT!形容这个AI模型的智力连狗都不如。 图灵三巨头之一的LeCun昨日又爆金句。 「论聪明程度,ChatGPT可能连条狗都不如。」 这句话来自本周四LeCun在Vivatech上和Jacques Attalie的一场辩论,可谓精彩…

提高工作效率 | ChatGPT效率神器推荐

司马阅(SmartRead) 基于ChatGPT技术的PDF解读工具可以让用户像与人类交互一样与PDF文档进行交互。这款解读工具利用ChatGPT技术,可以实现对PDF文档的自然语言处理和理解。用户可以直接对话式地与PDF文档进行交互,获得更加直观和深入的文件解读和分析。 …

ChatGPT和New Bing两大神器在手,天下我有

ChatGPT和New Bing两大神器在手,天下我有 终于搞定了两个神器,极大的解放生产力 ! 从中可以看到两个工具的区别