毕业设计 大数据电商用户行为分析 -python 大数据

news2024/11/20 22:38:55

文章目录

  • 0 前言
  • 一.背景描述
  • 二.项目背景
  • 三.数据来源
  • 四.提出问题
  • 五.理解数据
  • 六.数据清洗
    • 6.1缺失值处理
    • 6.2查看数据
    • 6.3一致化处理
    • 6.4查看data_user数据集数据类型:
    • 6.5数据类型转换
    • 6.6异常值处理
  • 七.用户行为分析
    • 7.1日访问量分析
    • 7.2小时访问量分析
    • 7.3不同行为类型用户PV分析
  • 八.用户消费行为分析
    • 8.1用户购买次数情况
    • 8.1日ARPPU
    • 8.2日ARPU
    • 8.3付费率
    • 8.4同一时间段用户消费数分布
  • 九.复购情况分析
  • 九、漏斗流失分析
  • 十用户行为与商品种类关系分析
  • 最后


0 前言

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 基于大数据的淘宝用户行为分析

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:3分

🧿 选题指导, 项目分享:

https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md

一.背景描述

针对项目:淘宝用户分析使用。2014年是阿里巴巴集团移动电商业务快速发展的一年,例如2014双11大促中移动端成交占比达到42.6%,超过240亿元。相比PC时代,移动端网络的访问是随时随地的,具有更丰富的场景数据,比如用户的位置信息、用户访问的时间规律等。

本次大赛以阿里巴巴移动电商平台的真实用户-
商品行为数据为基础,同时提供移动时代特有的位置信息,而参赛队伍则需要通过大数据和算法构面向建移动电子商务的商品推荐模型。希望参赛队伍能够挖掘数据背后丰富的内涵,为移动用户在合适的时间、合适的地点精准推荐合适的内容。

二.项目背景

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

三.数据来源

丹成学长数据集

四.提出问题

  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:用户行为发生的时间

六.数据清洗


​ import pandas as pd
​ import numpy as py
​ %matplotlib inline
​ import matplotlib.pyplot as plt
​ import seaborn as sns
​ data_user = pd.read_csv(‘/home/kesci/input/taobao1920/tianchi_mobile_recommend_train_user.csv’)

6.1缺失值处理


​ #缺失值处理
​ missingTotal = data_user.isnull().sum()
​ missingExist = missingTotal[missingTotal>0]
​ missingExist = missingExist.sort_values(ascending=False)
​ print(missingTotal)

user_id 0
item_id 0
behavior_type 0
user_geohash 8334824
item_category 0
time 0
dtype: int64

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

6.2查看数据


​ print(data_user.head())

在这里插入图片描述

6.3一致化处理


​ #一致化处理
​ import re
​ #拆分数据集
​ data_user[‘date’] = data_user[‘time’].map(lambda s: re.compile(’ ‘).split(s)[0])
​ data_user[‘hour’]=data_user[‘time’].map(lambda s:re.compile(’ ').split(s)[1])
​ data_user.head()

在这里插入图片描述

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


​ data_user.dtypes

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

6.5数据类型转换


​ #发现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

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

6.6异常值处理


​ #异常值处理
​ data_user = data_user.sort_values(by=‘time’,ascending=True)
​ data_user = data_user.reset_index(drop=True)
​ data_user.describe()

在这里插入图片描述

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

七.用户行为分析

(1)pv和uv分析

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

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

7.1日访问量分析


​ #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’)

在这里插入图片描述

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

7.2小时访问量分析


​ #小时访问量分析
​ #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[0].set_title(‘uv_hour’)

在这里插入图片描述

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

7.3不同行为类型用户PV分析


​ #不同行为类型用户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’)

在这里插入图片描述

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

八.用户消费行为分析

8.1用户购买次数情况


​ #(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’)

在这里插入图片描述

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

8.1日ARPPU

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

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

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

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


​ 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’)

在这里插入图片描述

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

8.2日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')

在这里插入图片描述

8.3付费率


​ #(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')

在这里插入图片描述

8.4同一时间段用户消费数分布


​ #(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次

在这里插入图片描述

九.复购情况分析


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

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


​ #所有复购时间间隔消费次数分布
​ 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’)

在这里插入图片描述

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

九、漏斗流失分析

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


​ data_user_count=data_user.groupby([‘behavior_type’]).count()
​ data_user_count.head()
​ pv_all=data_user[‘user_id’].count()
​ print(pv_all)

12256906

十用户行为与商品种类关系分析


​ #不同用户行为类别的转化率
​ 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()

在这里插入图片描述

最后

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaScript】分支结构和循环结构

目录 一、流程控制 二、分支结构 1. if语句 2. if…else语句 3. if…else if语句 4. switch语句 5. 条件表达式构成的选择结构 三、循环结构 1.while循环 2. do-while循环 3. for循环 3.1 for循环转换为while循环 3.2 断点调试 4. 循环嵌套 一、流程控制 流程控…

知识点2--Docker的安装

上一节知识点说了,一般使用Docker都是在Linux上,Windows有VMware就够了,所以本篇知识点同理带大家在CentOS Linux上安装Docker,但是要知道一个事情,CentOS 6系列的系统由于官方yum的关闭而处于不推荐使用的系统&#x…

微服务框架 SpringCloud微服务架构 16 SpringAMQP 16.9 消息转换器

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构16 SpringAMQP16.9 消息转换器16.9.1 一个案例16.9.2 消息转换器16.9.3 总…

【笔记】JS的[Object file]类型转string

文件上传,用到若依不分离版,其中文件上传时需要控制文件类型,于是就有了这篇笔记。废话不多说,上代码: var formData new FormData();if ($(#filePath)[0].files[0] null) {$.modal.alertWarning("请先选择文件…

硬盘数据丢失怎么办?电脑硬盘恢复,3个步骤

硬盘是计算机中的一个重要组成部分,是存储数据、进行数据存取的部件。硬盘一旦出现故障,会对电脑系统安全造成威胁,从而导致电脑运行不稳定。硬盘数据丢失后恢复是个难题,电脑硬盘恢复该怎么操作?别急,先来…

欢快畅游的小鱼特效

Jquery 欢快畅游的小鱼特效 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" con…

年产2万吨山楂酒工厂的设计-包装工段及车间的设计(lunwen+任务书+cad图纸)

目录 1 前 言 1 2 工艺概述 2 2.1 工艺简述 2 2.2 山楂酒酿造工艺流程 2 2.2.1原料挑选 2 2.2.2清洗分选 2 2.2.3破碎去核 2 2.2.4成分调整 3 2.2.5活化酵母 3 2.2.6接种发酵&#xff08;前发酵&#xff09; 3 2.2.7发酵原酒&#xff08;后发酵&#xff09; 3 2.2.8陈酿 3 2.2.…

在vue项目中使用less全局变量

1、安装less和less-loader npm i less less-loader -D 2、此时全局变量并未生效&#xff0c;需要安装开发依赖&#xff1a; npm i style-resources-loader vue-cli-plugin-style-resources-loader -D并在vue.config.js文件中配置&#xff0c;指定全局变量文件&#xff1a; 3…

[附源码]计算机毕业设计万佳商城管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

自行车无级变速器设计

目录 1绪论 1 1.1 机械无级变速器的特征和应用 1 1.2 机械无级变速器的分类 1 1.3 机械无级变速器的发展概况 2 1.4 无级变速自行车研究现状 3 1.5 自行车无级变速器运用实例 5 1.6 研究的目的和意义 7 1.7 毕业论文设计内容和要求 8 2 自行车无级变速器总体方案的选择 8 2.1 钢…

多目标优化算法:基于非支配排序的蜣螂优化算法(Non-Dominated Sorting Dung beetle optimizer,NSDBO)

蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。 一、蜣螂优化算法 1.1蜣螂滚球 &#xff08;1&#xff09;当蜣螂前行无障碍时…

第7节:CSS概述,选择器,标签分类,CSS三大特性

1、什么是 CSS&#xff1f;CSS 全称为 Cascading Style Sheets&#xff0c;中文翻译为“层叠样式表”&#xff0c;简称 CSS。在网页制作时采用 CSS 技术&#xff0c;可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。只要对相应的代码做一些简单的修改&…

Word处理控件Aspose.Words功能演示:在 Python 中将 PDF 转换为 JPG

PDF文件以文档、发票、收据、文章等形式随处可见。它是打印和共享文档最方便的格式之一。在某些情况下&#xff0c;您必须将 PDF 文件转换为JPG图像以生成缩略图或嵌入到您的前端应用程序中。为此&#xff0c;本文介绍了如何在 Python 中以编程方式将 PDF 中的页面转换为 JPG 图…

有来实验室|第一篇:Seata1.5.2版本部署和开源全栈商城订单支付业务实战

在线体验&#xff1a;Seata实验室 一. 前言 相信 youlai-mall 的实验室大家有曾在项目中见到过&#xff0c;但应该都还处于陌生的阶段&#xff0c;毕竟在此之前实验室多是以概念般的形式存在&#xff0c;所以我想借着此次的机会&#xff0c;对其进行一个详细的说明。 实验室模…

[附源码]JAVA毕业设计课程在线反馈系统(系统+LW)

[附源码]JAVA毕业设计课程在线反馈系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

OPNET Modeler 软件的简单介绍与使用

文章目录前言一、OPNET 中的重要概念二、OPNET 编辑器简介三、用 OPNET 建立网络拓扑结构四、收集统计量五、仿真及结果1、运行仿真2、查看仿真结果①查看服务器 Ethernet load 结果②查看服务器 Ethernet Delay 结果六、复制场景并扩展网络1、复制场景2、运行仿真及结果总结前…

[附源码]计算机毕业设计基于SpringBoot的实验填报管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

宏鑫科技在创业板过会:前三季度收入约7亿元,王文志为实控人

近日&#xff0c;深圳证券交易所创业板披露的信息显示&#xff0c;浙江宏鑫科技股份有限公司&#xff08;下称“宏鑫科技”&#xff09;获得创业板上市委会议通过。本次冲刺上市&#xff0c;宏鑫科技计划募资7.48亿元&#xff0c;用于年产100万件高端锻造汽车铝合金车轮智造工厂…

Spring Boot 热部署与日志

Spring Boot 热部署与日志 1.springboot中devtools热部署 1.1 引言 为了进一步提高开发效率,springboot为我们提供了全局项目热部署,日后在开发过程中修改了部分代码以及相关配置文件后,不需要每次重启使修 改生效,在项目中开启了springboot全局热部署之后只需要在修改之后等待…

项目管理工具dhtmlxGantt入门教程(二):如何初始化dhtmlxGantt(上)

dhtmlxGantt 是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表&#xff0c;可满足项目管理控件应用程序的所有需求&#xff0c;有很完善的甘特图图表库。当您使用 dhtmlxGantt 开发应用程序时&#xff0c;您需要做的第一件事就是初始化&#xff0c;或者简单地说&#xff0…