(一)项目说明
1.1项目选题与背景
本项目实现抖音用户浏览行为数据分析与挖掘。抖音是一款流行的短视频平台,用户在使用抖音时会产生大量的浏览行为数据,包括用户的观看视频、点赞、评论、分享等行为。本次项通过数据挖掘技术对抖音用户的浏览行为数据进行分析和挖掘,以获得有价值的信息和洞察,并将其应用于实际场景中,如用户个性化推荐、内容优化和广告定向投放等。
1.2项目意义
在数据挖掘的背景下,抖音用户浏览行为数据分析与挖掘具有重要的意义,对抖音用户浏览行为进行数据分析与挖掘,可以了解用户的兴趣和偏好,优化用户体验,提高内容的质量和吸引力,同时也可以为广告商提供更准确的定向投放服务,实现数据驱动的运营决策。
1.3项目需要解决的问题或目标
A.用户兴趣和喜好分析:通过分析抖音用户的浏览行为数据,了解用户对不同类型内容的偏好和兴趣。这可以帮助平台更好地了解用户需求,优化推荐算法,提供个性化的内容推荐,增加用户留存和活跃度。
B.内容优化和创新:通过数据挖掘,识别和分析受欢迎的内容类型、创意和趋势。这可以为内容创作者和平台运营者提供指导,优化现有内容,改进内容质量,吸引更多用户参与,并发现新的创意和趋势。
C.广告定向投放:利用用户浏览行为数据,了解用户的兴趣和偏好,为广告商提供精准的广告定向投放。通过分析用户行为模式,识别潜在的目标用户群体,并根据他们的兴趣和行为特征,将广告推送给最相关的用户,提高广告投放效果和转化率。
D.运营决策和业务优化:通过数据挖掘和分析,了解用户行为的变化趋势、活跃度和留存率等指标。这可以为抖音平台的运营决策提供依据,优化平台的功能设计、内容策略、资源分配和运营活动等,提升用户体验和平台的竞争力。
E.用户群体分析:利用用户浏览行为数据,对用户进行群体分析,识别不同用户群体的特征、行为模式和偏好。这可以帮助平台了解用户群体的多样性,为不同用户提供定制化的内容和服务,满足他们的个性化需求。
1.4从数据中获得什么类型的信息,以及如何将其应用于实际场景
从抖音用户浏览行为数据中希望获得的类型信息包括用户兴趣和喜好、内容类型和创意趋势、广告定向投放指导、用户行为指标和用户群体特征。这些信息可以应用于实际场景,包括个性化推荐算法的改进、内容创作和运营策略的优化、广告投放的精准定向、平台功能设计的优化和用户体验的提升。
(二)数据收集
首先,需要获取抖音用户的浏览行为的相关数据集,包括用户的观看记录、点赞记录、评论记录、分享记录等。这可以从数据库中提取数据、采集网络数据、使用API 访问数据源或与合作伙伴合作获得数据,也可以通过与抖音平台合作获得用户数据,使用API访问数据接口或其他合法的数据收集手段来实现。
2.1熟悉数据,查看数据结构和数据分布情况
数据集说明
字段名 | 解释 | 字段名 | 解释 | 字段名 | 解释 |
uid | 用户id | user_city | 用户城市 | item_id | 作品id |
author_id | 作者id | item_city | 作者城市 | channel | 作品频道 |
finish | 是否看完 | like | 是否点赞 | music_id | 音乐id |
duration_time | 作品时长 | real_time | 具体发布时间 | H、date | 时、天(发布) |
数据集下载:抖音用户浏览行为数据集
2.2导入必要的Python Packages
首先导入需要的python包,其中包括NumPy、Pandas,导入这些包能够使用相应库和模块的函数、类和方法来处理和分析数据、进行机器学习模型的训练和评估。
import pandas as pd import matplotlib.pyplot as plt import numpy as np import warnings warnings.filterwarnings('ignore') from pyecharts.charts import * from pyecharts import options as opts from sklearn.cluster import KMeans
(三)数据查看与预处理
3.1 数据查看
简单看一下前5行数据,确定需要进一步预处理的内容:数据去重、删除没有意义的第一列,部分列格式转换、异常值检测。
# 读取数据 df = pd.read_csv('douyin_dataset.csv') df.head()
df.info() • 1
3.2 数据去重
无重复数据
print('去重前:',df.shape[0],'行数据') print('去重后:',df.drop_duplicates().shape[0],'行数据')
3.3 删除列
删除没有意义的第一列
df = df.drop(df.columns[[0]],axis=1)
3.4 缺失值查看
无缺失值
print(np.sum(df.isnull()))
3.5 变量类型转换
real_time 和 date 转为时间变量,id、城市编码转为字符串,并把小数点去掉
df.info()
(四)基本画像
基本信息的可视化,面向用户、创作者以及内容这三个维度进行。
4.1 观众画像
数据中一个人对应多条观看数据,但一个人的基本信息是固定的,所以需要进行去重操作。去重后共 59232 条。
df.drop_duplicates(['uid']).shape[0]
user_info = df.drop_duplicates(['uid','user_city'])[['uid','user_city']] user_info.info()
4.1.1 地区 - 用户
user_city_count = user_info.groupby(['user_city']).count().sort_values(by=['uid'],ascending=False) x1 = list(user_city_count.index) y1 = user_city_count['uid'].tolist() len(y1)
覆盖到了387个城市,其中编号为99的城市用户比较多超过2000人,6、129、109、31这几个城市的使用人数也超过了1000。
可以关注用户较多城市的特点,对产品受众有进一步的把握。
用户较少的城市可以视作流量洼地,考虑进行地推/用户-用户的推广,增加地区使用人数。
4.1.2 观看时间
根据不同时间的观看视频数量来看:0,4-5,18-23,尤其是22-23是用户使用的高峰期,下午观看视频数量较少。
在用户高浏览的时段进行广告的投放,曝光量更高
在高峰段进行优质内容的推荐,效果会更好
根据不同时间的观看视频数量来看,11-18,20-21,尤其是13-16是用户使用的高峰期
可以看到在用户高浏览的时段进行广告的投放,曝光量更高
所以在高峰段进行优质内容的推荐,效果会更好
关注到点赞率和完播率,这两个与用户粘性、创作者收益有一定关系的指标。可以看到15点是两个指标的小高峰,2、4、20、23完播较高,8、13、18、20点赞率较高。但结合观看数量与时间段的分布图,大致猜测15点深度用户较多。
4.1.3 每周观看
在统计的时间内周一到周三观看人数较多,但总体观看次数基本在20-30w之间。
创作者选择在周一-三这几天分布可能会收获更多的观看数量
4.1.4 观看路径
df.groupby(['channel']).count()['uid']
观看途径主要以0为主,初步猜测为App。3途径也有部分用户使用,可能为浏览器。
考虑拓宽各个观看渠道,增加总体播放量和产品使用度
非主渠道观看,制定策略提升转化,将流量引入主渠道
针对主要渠道内容进行商业化策略投放,效率更高
4.2 创作者画像
4.2.1 发布地点
观看用户地区分布和创作者分布其实存在不对等的情况。4地区创作者最多,超5k人,33、42、10地区创作者也较多。
创作者与地区的联系也值得关注,尤其是创作内容如果和当地风俗环境人文有关
相邻近地区的优质的创作者之间互动,可以更好的引流
4.2.2 优质作者
4.2.2.1 高产作者top5
item_num = df.drop_duplicates(['author_id','item_id']).groupby(['author_id']).count().sort_values(by=['item_id'],ascending=False)['item_id'] item_num[:5]
4.2.2.2 高获赞作者top5
like_num = df.groupby(['author_id']).sum().sort_values(by=['like'],ascending=False)['like'] like_num[:5]
4.3 内容画像
4.3.1 基本信息
4.3.1.1 视频时长
视频时长主要集中在9-10秒,符合抖音“短”视频的特点。
官方提供9/10秒专用剪视频模板,提高创作效率
创作者关注创意浓缩和内容提炼
视频分布在这两个时间点的爆发也能侧面反映用户刷视频的行为特征
4.3.1.2 整体点赞、完播
内容整体完播率非常接近40%,点赞率在1%左右
用户更多是“刷”视频,挖掘吸引力和作品连贯性,能更好留住用户
点赞功能挖掘不够,可尝试进行ABtest,对点赞按钮增加动画,测试是否会提升点赞率
4.3.2 优质内容
4.3.2.1 高点击
df.groupby(['item_id']).count().sort_values(by=['uid'],ascending=False)['uid'][:5]
4.3.2.2 高点赞
df.groupby(['item_id']).sum().sort_values(by=['like'],ascending=False)['like'][:5]
4.3.2.3 高频使用音乐
music = df.drop_duplicates(['item_id'])[['item_id','music_id']] music.groupby(['music_id']).count().sort_values(by = ['item_id'],ascending = False)[:5]
(五)进阶分析
5.1 相关性分析
因为变量非连续,采取spearman相关系数,制作相关性热力图。由于数据量比较大的缘故,几个数量性变量之间的相关性都比较小,其中看到finish和点赞之间的相关系数稍微大一些,可以一致反映用户对该视频的偏好。
5.2 留存率
5.2.1 pv/uv
在2019.10.18进入用户使用高峰阶段,目标用户单人每天浏览多个视频。
关注高峰时间段,是否是当下推荐算法起作用了
5.2.2 7/10 留存率
用户留存率保持在40%+,且没有跌破30%,说明获取到的数据中忠实用户较多。
存在一定可能性是因为数据只爬取了特定用户群体的行为数据,结合创作者数量>用户数量可得到验证
但一定程度可以反映软件留存这块做的不错
(六)深度分析
6.1 客户价值判断
通过已观看数、完播率、点赞率进行用户聚类,价值判断
四类
三类
比较三类、四类的轮廓系数,确定聚为3类
可以大致对三类的内容做一个描述。
- 紫色:观看数量较少,但点赞完播率都非常高的:对内容观看有耐心,愿意产生额外性行为。因此通过观看兴趣内容打散、可以刺激用户观看更多视频。e.g.多推荐有悬念、连续性的短视频
- 绿色 :观看数量适中,点赞率、完播率有所下滑,对这类用户的策略可以中和先后两种。
- 蓝色 :观看数量非常多,点赞、完播率教室,这类用户更多会关注到视频前半段的内容,兴趣点可通过停留时间进行判断,但使用时间相对较长,反映产品依赖性,一定程度上来说算是核心用户。e.g.利用停留时间判断喜好,优化推荐算法,重点推荐前半段内容吸引力大的。