B站美食区用户行为差异浅析和可视化

一、背景和分析目的

本项目基于学习与兴趣,通过对B站2022年美食分区1月份热播视频数据探索分析美食区观众的内容偏好和与视频相关行为习惯。

主要分目标如下:
  • 美食分区中哪个分区更受观众喜欢?
  • 观众对每个分区的态度和行为有无明显差别?
用到的主要分析方法:
  • 对比分析、描述统计分析 、Kruskal-Wallis检验

二、用到的主要工具和库

  • 数据爬取 :chromedriver、selenium、scrapy
  • 数据分析和可视化:pandas、numpy、matplotlib、seaborn
  • IDE:anaconda

三、数据准备

  • 数据来源:本次用于分析的数据来源于B站美食分区2022年1月播放热门视频数据,采集美食分区下五个分区各自前100页视频数据,包括up名称、粉丝数、视频bv号、视频发布时间、视频标题、视频播放量、点赞数、投币数、收藏数、转发数、弹幕数等11个特征数据,每个分区计划采集前1000个视频的数据样本共5000条,实际共采集4998个样本的数据(数据爬取时缺失了2条,不过不影响分析)。

  • 技术实现:scrapy+selenium
    由于美食分区一级页面代码中每个视频的信息是JS动态加载的,而requests和scrapy都只能处理静态网页,所以还需要安装webdriver驱动(本案例用的是Chrome浏览器和对应的chromedriver驱动),用selenium去请求网页,返回动态加载的response信息。

  • 爬取结果展示: 五个分区数据分别保存到了五个CSV文件中,为了方便后续分析,在每个分区CSV文件中新增了类别列category,其中美食制作区数据如图所示:

图1-1 food_make.csv

alt

四、数据预处理和数据解读

1. 导入数据

美食总分区包括美食制作、美食侦探、美食测评、田园美食、美食记录等五个分区,分别导入合并处理:

  • 导入:food_mk=pd.read_csv("food_make.csv")
  • 合并: food=food_mk.append(food_dt).append(food_rw).append(food_rl).append(food_rd)

2. 数据清洗,包括缺失值、重复数据、异常值等的处理

通过查看发现并没有缺失值和重复值,但是

  1. 播放量、点赞数等需要进行单位统一,并去掉数字后面的“万”字,这里将所有相关数据单位统一到万,并保留6位小数。
  2. 处理过程中发现有些视频投币、收藏等数据显示的是“收藏”、“投币”,通过分析发现是采集时这些数据值为0而没有显示数字造成的,所以将这些数据都替换为0。
  3. 时间做分解和变换处理:
  • 发布日期pudate:因为都是2022年1月的数据,统一去掉年月只保留日期。
  • 发布时间putime:向下取整到小时,如12:35,统一作12点处理。
  • 发布星期puwday:将日期转换为星期。

3. 新特征提取:

通常情况下播放量越高,点赞、投币越多,因而单一的通过数量计算对比可能无法探索出用户的某些行为偏好,故而需要结合播放量来进行分析,进而构造新特征如下:
点赞数/播放量:点赞率like_view_rate
投币数/播放量:投币率coin_view_rate
收藏数/播放量:收藏率collection_view_rate
转发数/播放量:转发率collection_view_rate
弹幕数/播放量:弹幕率danmu_view_rate

数据预处理后各字段概况

图1-2 数据一

alt

图1-3 数据二

alt

五、数据分析和可视化展现

注:以下所有图中的绿色水平线是整个美食区各相应水平下的均值线

1. 统计学描述和探索分析

  • 内容偏好:如图5-1和图5-2所示,平均而言,美食制作和美食侦探区的视频播放均值和UP粉丝均值均高于整个美食区均值,拥有更多播放量和固定受众,看来用户似乎更喜欢美食制作区和美食侦探区内容,而美食测评和美食田园区播放量和固定受众数量就相对比较少了,尤其是田园区,平均播放量不到美食制作区的1/6。
图5-1 各分区UP主平均粉丝数(单位:万)

alt

图5-2 各分区视频平均播放量(单位:万)

alt

  • 行为差异:如图5-3所示,平均而言,各分区除了在点赞率水平下,相对比较稳定外,在其他水平下都有较大差异,这种差异可能反应了用户对待不同分区有着不同的态度和行为,或者说不同分区内容对用户的价值不同,当然是否具有统计学上差异,还需要进一步分析,不过至少可以说明,有比较大的可能是存在差异的,可以继续深入分析。
图5-3 各分区点赞率、投币率、收藏率、转发率、弹幕率均值(百分比:%)

alt

2. 分析方法选择、数据分析和可视化展现

1.样本分布情况查看

为了进一步探索各分区行为差异,需要先了解数据分布情况,以便选择合适的分析方法,通过箱线图,以及使用SW-检验(Shapiro-Wilk检验 )方法对样本分布进行检验,发现各因素各水平下的统计样本大都呈正偏态分布,故可选择非参数检验方法进行差异分析,本次将采用Kruskal-Wallis方法进行分析。

图5-4 各分区点赞率、投币率、收藏率、转发率、弹幕率(百分比:%)

alt

2.Kruskal-Wallis方法分析各分区行为差异:

通过分析发现,在置信水平0.05下,相同行为指标上五个分区之间有显著性差异,进一步两两比较后,得出如图5-5所示具体差异分析结果表,并总结如下:

  • 点赞率:测评区与其他四个区都存在统计学上差异,其他四个区两两之间并无明显差异。
  • 投币率:除了测评区和侦探区之间无统计学差异外,其他四个区两两之间都存在差异。
  • 收藏率:五个区两两之间都存在统计学差异。
  • 转发率:除侦探区和美食制作区以及田园区和测评区之间无统计学差异,其他区两两之间都存在统计学差异。
  • 弹幕率:除了测评区和侦探区之间无统计学差异外,其他区两两之间都存在差异。
图5-5 各分区点赞率、投币率、收藏率、转发率、弹幕率两两差异分析结果表

alt

总结

综上分析,本次分析的基本结论如下:

  1. 整体而言,美食制作区和侦探区拥有最多播放和固定受众,用户更偏爱美食制作区的内容
  2. 对于不同分区,用户行为和态度有显著差异,其中
  • 美食制作区:收藏率平均值和中值都远高于其他分区,对用户而言有较大收藏价值,同时用户有较高的积极性参与投币支持和分享,不过弹幕互动率相对较低,可能因为此分区观众有更明确的观看目标,对内容和呈现质量有更高要求,因而UP设计视频内容时会更突出视频质量而非社交互动。
  • 美食侦探区:投币率和收藏率均值和中值相对偏低,互动意愿相对一般,处于五个分区的中间水平,但人们有较高分享意愿,这一点和美食制作区的相比无统计学差异。
  • 美食测评区:点赞率、投币率、转发率均值和中值都相对较低,但收藏率和弹幕率均值和中值较高,人们有较高积极性参与互动,弹幕率和侦探区的相比无统计学差异。
  • 美食记录区:除了点赞率相对没有偏低,其他四个水平均值都处于整体平均值以下,与其他几个区相比,用户整体态度和行为似乎都比较平淡,可能属于观看前没有明确期待,看完图一乐就走了那种。
  • 美食田园区:收藏和转发意愿较低,不过投币率和弹幕率的均值和中值都是所有分区中最高的,有较高互动率和投币积极性,看起来用户观看体验挺不错的。