我用加强版RFM模型,轻松扒出B站优质up主!(含数据+实战代码)(中)

简介: 本文在RFM模型基础上做了调整,尝试用更符合b站特性的IFL模型,找到各分区优质up主。整个过程以分析项目的形式展开,最终附上了完整源数据和代码,方便感兴趣的同学练手。

提取需要的信息


根据不同的分区进行IFL打分,这里以科普区为例

sc = df.loc[df['分区']=='科学科普']
so = df.loc[df['分区']=='社科人文']
ma = df.loc[df['分区']=='机械']
tec = df.loc[df['分区']=='野生技术协会']
mi = df.loc[df['分区']=='星海'] # 一般发布军事内容
car = df.loc[df['分区']=='汽车']
sc.info()


image.png


关键词构造

F值:首先,先筛选出发布视频大于5的up主,视频播放量在5W以上的视频数少于5,说明可能是有些视频标题取得好播放量才高,而不是视频质量稳定的up主。

# 计算发布视频的次数
count = sc.groupby('author')['date'].count().reset_index()
count.columns =['author','times']
# 剔除掉发布视频少于5的up主
com_m = count[count['times']>5]
#com_m = pd.merge(count,I,on='author',how='inner')
com_m.info()

image.png


筛选完只剩下208个up主的视频数在5个以上:


last = sc.groupby('author')['date'].max()
late = sc.groupby('author')['date'].min()
# 最晚发布日期与最早之间的天数/发布次数,保留整数,用date重新命名列
F =round((last-late).dt.days/sc.groupby('author')['date'].count()).reset_index()
F.columns =['author', 'F']
F = pd.merge(com_m, F,on='author', how='inner')
F.describe()


image.png


通过describe()方法发现,最晚发布日期与最早发布日期为0的现象,猜测是在同一天内发布了大量的视频。

# 查找的一天内发布视频数大于5的人
F.loc[F['F'].idxmin()]


image.png


image.png


其视频皆为转载,将其剔除统计范围内。


F = F.loc[F['F']>0]
F.describe()


image.png


I值


# 构建I值
danmu = sc.groupby('author')['danmu'].sum()
replay = sc.groupby('author')['replay'].sum()
view = sc.groupby('author')['view'].sum()
count = sc.groupby('author')['date'].count()
I =round((danmu+replay)/view/count*100,2).reset_index() #
I.columns=['author','I']
F_I = pd.merge(F,I,on='author',how='inner')
F_I.head()


image.png


L值


# 计算出点赞率计算出所有视频的点赞率
sc['L'] =(sc['likes']+sc['coins']*2+sc['favorite']*3)/sc['view']*100
sc.head()


image.png


# 构建L值
L =(sc.groupby('author')['L'].sum()/sc.groupby('author')['date'].count()).reset_index()
L.columns =['author', 'L']
IFL = pd.merge(F_I, L, on='author',how='inner')
IFL = IFL[['author', 'I','F','L']]
IFL.head()


image.png


维度打分


维度确认的核心是分值确定,按照设定的标准,我们给每个消费者的I/F/L值打分,分值的大小取决于我们的偏好,即我们越喜欢的行为,打的分数就越高:


  • I值,I代表了up主视频的平均评论率,这个值越大,就说明其视频越能使用户有话题,当I值越大时,分值越大。


  • F值表示视频的平均发布周期,我们当然想要经常看到,所以这个值越大时,分值越小。


  • L值表示发布视频的平均点赞率,S值越大时,质量越稳定,分值也就越大。I/S值根据四分位数打分,F值根据更新周期打分。

IFL.describe()


image.png


I值打分:


image.png


L值打分:


image.png


F值根据发布周期打分:


image.png

相关文章
|
6月前
|
机器学习/深度学习 算法 数据挖掘
python高级在线题目训练-第二套·主观题
python高级在线题目训练-第二套·主观题
81 0
|
6月前
|
JSON 自然语言处理 网络协议
【字节跳动青训营】后端笔记整理-2 | Go实践记录:猜谜游戏,在线词典,Socks5代理服务器
猜数字游戏也算是入门一门编程语言必写的程序了。通过这个程序,我们可以熟悉Go语言中的输入输出、流程控制与随机函数的调用。
94 2
|
6月前
|
搜索推荐 关系型数据库 MySQL
手把手教你搭建子比主题的系统(亲测可用)|学习版本|虚拟知识付费平台比较合适
搭建Zibll子比主题涉及以下步骤: 1. 服务器环境需支持PHP 7.0+(推荐7.4+)和MySQL。 2. 下载并安装WordPress,可从官方站点获取最新版本。 3. 从指定链接下载子比主题文件。 4. 在WordPress后台上传并启用子比主题,配置固定链接和伪静态,例如使用宝塔面板。 5. 调整主题设置,如Logo和网站关键词。 6. 安装必要插件,如Yoast SEO和Contact Form 7,根据实际需求选择。 7. 完成后测试和调试网站功能。 记得参考官方文档以获取详细指导。
|
6月前
|
JSON 数据格式 Python
13 Python 阶段性总结抽奖系统(文末附代码地址)
13 Python 阶段性总结抽奖系统(文末附代码地址)
91 0
13 Python 阶段性总结抽奖系统(文末附代码地址)
|
11月前
|
测试技术
【测试平台系列】第一章 手撸压力机(十)-定义场景
上一章,咱们对http请求进行了一些优化,本章节我们将组成场景去运行。首先场景就是一连串的http接口的请求,我们使用list(列表)来组装成一个场景
【测试平台系列】第一章 手撸压力机(十)-定义场景
|
11月前
|
存储 JSON 搜索推荐
【测试平台系列】第一章 手撸压力机(十二)-初步实现提取功能
上一章节,我们主要实现了基础的并发测试场景的能力。本章节,我们实现一下,如何对响应进行提取,使用正则/json对响应信息提取,并赋值给我们定义的变量。
合成进阶奖励模式系统开发搭建源码规则解析
合成进阶奖励模式系统开发搭建源码规则解析
抽签软件免费提供,代码开源,可用作抽奖、课堂抽背、游戏分组等活动场合,可以直接下载
抽签软件免费提供,代码开源,可用作抽奖、课堂抽背、游戏分组等活动场合,可以直接下载
697 1
抽签软件免费提供,代码开源,可用作抽奖、课堂抽背、游戏分组等活动场合,可以直接下载
|
传感器
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
|
运维 Devops Linux
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(一)
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(一)
206 0
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(一)