B站科普区优质科普(技术区)UP主挖掘分析
B站科普区优质UP主挖掘分析
爬虫的代码(在这里感谢贾老师)有兴趣的可以私聊我~
数据获取方式:
公众号:YOLO的学习进阶日常
回复:B站
注意:本数据集没有粉丝数,粉丝数需要另外一个API,这里我很多小伙伴都已经写过怎么爬去粉丝数,我就不赘述了
文章目录
- B站科普区优质UP主挖掘分析
- 明确目的
- 读取数据
- RFM——IFL模型
- F
- I
- L值
- 建模
- 评分
- 均值划分
- 类型划分
明确目的
首先在数据分析之前我们要知道我们拿这些来干嘛???
很简单!想去B站关注一些高质量科普类(技术)的UP来帮助我学习咯~
读取数据
我们只需要科普区的,提取关键列“科学科普”,提取我们想用来进行分析的关键字段
注意:数据集303M,爬去了很多,不止科普区的,还有其他的,我这里只是提取了部分数据分析而已
import pandas as pd
data=pd.read_csv('./tech.csv')
sci=data.loc[data['分区']=='科学科普']
sci=sci[['分区','author','coins','danmu','favorite','likes','reply','share','view','title','date']]
sci.head()
RFM——IFL模型
我们怎么获得想要的成员呢!相信很多朋友都知道RFM模型用来用户画像吧,因此我们同理使用RFM的原理,建立一个IFL模型
I:interaction_rate 反应的是平均每个视频的互动率
F:Frequence 表示的是每个视频的平均发布周期
L:like_rate 表示的是统计时间内发布视频的平均点赞率
IFL模型是对视频质量进行评估和分析
F
F是反映视频周期的,和RFM模型一样,也是反应频率的,这里就是反应更新的频率,经常脱更的我可不行!
首先,肯定是视频数要大于5个以上的啊,不然我关注她图 啥啊,图她比我青春靓丽吗
count=sci.groupby("author")['分区'].count().reset_index()
count.columns=['author','times']
com_m=pd.merge(count,sci,on='author',how='inner')
com=com_m[com_m['times']>=5]
com
然后咋们就要开始算平均的更新间隔啦~更新时间太长了,不行不行,我等不起,那就是越小越好?不不不 !如果只有0咋办,那肯定就是转发啊,不行不行这个不行。
import datetime as dt
com['date']=pd.to_datetime(com.date)
last=com.groupby("author")['date'].max()
late=com.groupby("author")['date'].min()
F=round((last-late).dt.days/com.groupby("author")['date'].count()).reset_index()
F.columns=['author','F']
F=pd.merge(com,F,on='author',how='inner')
F.describe()
F
这样看不够直观,用describe()来看看到底F是个啥样
果然,就有那种很喜欢转发的,大家看到F下的那个0了吗!找到它,删除!用啥方法找到它(索引)呢?当然是idxmin这个函数啦~
F.loc[F['F'].idxmin()]
在给他一次机会,看看这位UP其他特征怎么样
emmmmmm其他不怎么样,好啦,都是转载,这位UP很遗憾要被我删除了
F=F.loc[F['F']>0]
F.describe()
F值求到了,接下来,看看I值的效果怎么样,看一下大家没有没有跟这个UP互动啊,互动多的话应该还是可以证明UP是个很温柔很美好的人吧嘻嘻
I
用什么指标可以反应I值呢?
我们可以看看他的回复(reply)评论之类的,看他们的总和!越多越好!
danmu=F.groupby('author')['danmu'].sum()
reply=F.groupby('author')['reply'].sum()
view=F.groupby("author")['view'].sum()
count=F.groupby("author")['date'].count()
I=round((danmu+reply)/view/count*100,2).reset_index()
I.columns=['author','I']
I=pd.merge(F,I,on='author',how='inner')
I
L值
点赞率有多重要,咳咳暗示大家都给我点赞评论啊哈哈哈,点赞率可以反应大家对这个UP 视频的认可度,L值当然是越大越好!
I['xixi']=(I['likes']+I['coins']*2+I['favorite']*3)/I['view']*100
L=(I.groupby("author")['xixi'].sum()/I.groupby("author")['date'].count()).reset_index()
L.columns=['author','L']
IFL=pd.merge(I,L,on='author',how='inner')
IFL=IFL[['author','I','F','L']]
IFL
建模
你以为IFL算出来就可了?那怎么衡量他们的好坏呢?当然就是,建立指标啦。
三个指标都以均值为一个界限,先评分,F值如果大于均值,那就是,emmmm脱更,给他个0不为过吧,我们要严格一点啊现在有可以选择的UP哈哈哈,大于均值的就设为1;其他两个指标就是大于均值就设置为1,小于均值就是设置为0
评分
首先给他们,画个阶段出来
IFL['I_score']=pd.cut(IFL['I'],bins=[0,0.03,0.06,0.11,1000],labels=[1,2,3,4],right=False).astype(float)
IFL['F_score']=pd.cut(IFL['F'],bins=[0,7,15,30,90,1000],labels=[5,4,3,2,1],right=False).astype(float)
IFL['L_score']=pd.cut(IFL['L'],bins=[0,5.39,9.07,15.58,1000],labels=[1,2,3,4],right=False).astype(float)
IFL.head()
均值划分
IFL['I_OK']=(IFL['I_score']>IFL['I_score'].mean())*1
IFL['F_OK']=(IFL['F_score']>IFL['F_score'].mean())*1
IFL['L_OK']=(IFL['L_score']>IFL['L_score'].mean())*1
IFL
类型划分
IFL['人群数值']=(IFL['I_OK']*100)+(IFL['F_OK']*10)+(IFL['L_OK']*1)
IFL
def transform_label(x):if x==111:label='高质量UP主'elif x==101:label='高质量拖更UP主'elif x==11:label='高质量内容高深UP主'elif x==1:label='高质量内容高深托更UP主'elif x==110:label='接地气活跃UP主'elif x==10:label='活跃UP主'elif x==100:label='接地气UP主'elif x==0:label='还在成长的UP主'return label
IFL['人群类型']=IFL['人群数值'].apply(transform_label)
data=IFL[['人群类型','author']]
data=pd.merge(sci,data,on='author',how='inner')
data=data[['author','title','人群类型']]
data=data.drop_duplicates("author").reset_index()
data.to_csv("/media/yefanyefan/新加卷/AA/work/fin/UP.csv",index=False)
好啦~快去根据自己的需求分析自己想关注的UP吧~
B站科普区优质科普(技术区)UP主挖掘分析相关推荐
- 易基因|综述科普:单细胞测序技术下的小鼠脑部DNA甲基化图谱
表观基因组的动态变化与哺乳动物大脑中的细胞分化和成熟有关,在调节神经元功能和动物行为方面具有重要作用.胞嘧啶DNA甲基化(5mC)是一种稳定的共价修饰,对基因调控至关重要.在哺乳动物基因组中,5mC主 ...
- 保定计算机软件学院是哪个区,河北软件职业技术学院在哪个区
一.河北软件职业技术学院在哪个区 河北软件职业技术学院是在保定市南市区,具体地址在河北省保定市东风东路999号,该校是隶属于河北省教育厅,是河北省首家独立建制的以信息技术教育为主的高等职业院校. 二. ...
- 王者荣耀服务器微信篇,王者荣耀:微信区转QQ区能提高技术?玩家用真实经历讲述,是的...
原标题:王者荣耀:微信区转QQ区能提高技术?玩家用真实经历讲述,是的 每个游戏的玩家基本上都会分为多个对立群体,比如喜欢秀操作的看不上脸滚键盘的:喜欢有爆炸性伤害英雄的玩家则非常鄙视爱拿持续输出英雄的 ...
- [征求意见]关于增加Java技术区
有人发邮件建议博客园增加java技术区. 博客园在这里征询大家的意见, 大家是否同意增加java技术区? 博客园已经有Java分站:http://www.blogjava.net . 转载于:http ...
- 从网易云音乐说起,看如何打造优质的评论区
作者:且行且看 全文共 4890 字 10 图,阅读需要 10 分钟 ---- / BEGIN / ---- 评论区是一款产品中用户和用户,用户和内容发布者,用户和平台的重要交流渠道,它对于产品的整体 ...
- 《SOC芯片研究框架》深度科普,发展趋势、技术特点、产业链一文看懂
片上系统SoC(System on Chip),即在一块芯片上集成一整个信息处理系统,简单来说 SoC芯片是在中央处理器CPU的基础上扩展音视频功能和专用接口的超大规模集成电路,是智能设备的" ...
- B站头部UP主抱团垄断优质资源,腰部UP主的流量突破口在哪?
本篇关键词:UP主.B站.涨粉.流量.内容创作 B站头部UP主一直是热门视频榜的常驻嘉宾,老番茄.雨哥到处跑.绵羊料理.老师好我叫何同学等. 参考UP主老师好我叫何同学,10月17日发布<[何同 ...
- 1、虚拟机内存管理、运行时数据区、线程共享区、Java堆、新生代、老年代、Eden区域分配、方法区、线程独占区、虚拟机栈
1.Java虚拟机内存管理 1.1.运行时数据区[Runtime Data Area] 1.1.1.线程共享区 1.1.1.1.Java堆[heap] 1.1.1.1.1.新生代.老年代.Eden区域 ...
- kdj超卖_kdj超买超卖是什么意思?kdj指标里说的“超买区,超卖区”什么意思?...
在分析股票的走势以及股票买卖点的时候,我们经常会使用一些指标来作为工具进行分析,比如KDJ指标等,最近有人问kdj超买超卖是什么意思?对此小编给大家搜集了有关KDJ指标和超买超卖指标的一些内容. kd ...
最新文章
- jQuery ajax 传递JSON数组到Spring Controller
- python画横条形图-用matplotlib画条形图(bar)
- oracle crm版本,ORACLE CRM ON DEMAND 19 版
- 程设13次作业总结--运算符重载
- 我是如何超越PPG的(摘自:IT经理世界;作者:李黎)
- 跪求解,oc内存回收问题
- 使用 Hexo + Next 搭建静态博客
- Unity中UGUI之Canvas属性解读版本二
- java web tomcat 实例_Java Web应用开发实例
- 前端开发者必备google插件
- [BZOJ4719][P1600][NOIP2016]天天爱跑步[LCA+dfs序+差分]
- JAVA语言基础——类型转换
- Qt调用谷歌翻译API
- LitJson扩展支持float类型和自定义类型
- python安卓脚本精灵使用教程_按键精灵安卓按键初体验—乱斗西游2自动签到
- python培训 首选马哥教育
- 牛客网 2018校招真题 吉比特 最大差值
- 从国际象棋与象棋的走法差异,再趣说IT人提升能力和增收方式
- 标签系列二:spring 中bean解释以及bean标签里面的属性
- 从0到1一个文件,用Python 实现 Web 框架