当前位置:   article > 正文

对抖音流量获取的数据分析_抖音算法 数据分析

抖音算法 数据分析


一、分析目的

抖音是一个面向全年龄的音乐短视频社区平台。目前用户众多,有不少人都成为了网红,聚集了大量粉丝。在此希望能看出一些他们之间的共性,帮助后来人少走一些弯路。并结合实际观察抖音运营存的现状,提出一些建议。
采集到的抖音网红的相关建议,如下,我们要通过数据分析验证这些建议的真实性

  • 抖音98.52%的流量都会流向算法推荐视频,获得算法推荐是获得更多播放的关键所在。
  • 最重要的始终是题材的选择,初始流量池大更容易获得算法青睐。
  • 除去题材外,投稿的最佳时间日常是在0-5点,有平台活动一定要参与。
  • 视频时长最好在7-10s,其次是0-6s及23s以内,最长也不建议超过40s。
  • 背景音乐最好选择当下最流行的歌曲。

二、数据来源

本文的数据集为抖音四十天内的数据交互记录,一行记录就是一个播放数据,总共近600w条数据。
爬取的数据示例

字段说明

数据字段数据含义
uid用户id
user_city用户所在城市
item_id作品id
author_id作者id
item_city作品城市
channel观看到该作品的来源
finish是否浏览完作品
like是否对作品点赞
music_id音乐id
device设备id
time作品发布时间
duration_time作品时长

三、数据处理

1.引入库

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt
import time
import seaborn as sns
%matplotlib inline
#更改设计风格
plt.style.use('ggplot')
plt.rcParams['font.sans-serif'] = ['SimHei']#(显示中文)
plt.rcParams['axes.unicode_minus'] = False#(显示负数)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.数据清洗&预处理

加载数据

data = pd.read_csv('./douyin.txt')
data.head()
  • 1
  • 2

在这里插入图片描述

检测是否存在空值

data.isnull().sum(axis=0)
  • 1
uid              0
user_city        0
item_id          0
author_id        0
item_city        0
channel          0
finish           0
like             0
music_id         0
device           0
time             0
duration_time    0
dtype: int64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

检测是否存在重复值

data.duplicated().sum()
data.drop_duplicates(inplace=True)
#重新设置索引
data.reset_index(drop=True,inplace=True)
  • 1
  • 2
  • 3
  • 4

数据是进行过脱敏的数据,无法观察原有情况,不过可以推断其中的-1是缺失值直接删除即可。

data.replace(to_replace=-1,value=np.nan,inplace=True)
data.isnull().sum()
data.dropna(axis=0,inplace=True)
data.reset_index(drop=True,inplace=True)
  • 1
  • 2
  • 3
  • 4

原始的数据列中存在device为设备ID,这个特征于分析无意义,可以将其删除

data.drop(labels='device',axis=1,inplace=True)
data.info()
  • 1
  • 2

在这里插入图片描述
time列是时间戳,此处修改成正常时间

time.strftime(“%Y-%m-%d %H:%M:%S”, time.localtime(1511572885))

real_time = []
for i in data['time']:
    timeArray = time.localtime(i)
    otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
    real_time.append(otherStyleTime)    
data['real_time'] = real_time
data.drop(labels='time',inplace=True,axis=1)
data['real_time'] = pd.to_datetime(data['real_time'])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

时间列中既有日期也有具体的时分秒,网红建议发布视频的时间为0-5点,则需要将小时单独从日期中抽取出来作为新的一列,将年-月-日的时间也抽取出来作为新的一列。

data['H'] = data.real_time.dt.hour
data['date']=data.real_time.dt.date
#将date转换成字符串类型
data['date'] = data.date.astype('str')
  • 1
  • 2
  • 3
  • 4

四、数据分析

抖音网红视频数据分析

抖音播放量来源分布

channel = data.groupby(by='channel').count()['uid']
channel
  • 1
  • 2

在这里插入图片描述
结论1: 虽然没有明确说明,但作为算法驱动的短视频平台,显然可知“0”是算法推荐的视频。那么在抖音获得播放量的关键就是获得算法推荐进入更大的流量池。

视频时长与点赞完播率之间的关系

作品时长与播放量的关系
item_duration = data.groupby(by='duration_time').count()['uid']
plt.plot(item_duration)
plt.xlim(2,40)
plt.xlabel('作品时长')
plt.ylabel('播放量')
plt.title("作品时长与播放量的关系")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

作品时长与作品数量的关系
duration_nums = data.groupby('duration_time')['item_id'].nunique()
plt.plot(duration_nums)
plt.xlim(2,40)
plt.xlabel('作品时长')
plt.ylabel('作品数量')
plt.title("作品时长与作品数量的关系")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

作品时长与完播率的关系

完播率和点赞率可以用不同播放时长的作品对应的完播和点赞的均值表示

finish_p = data.groupby('duration_time')['finish'].mean()
plt.plot(finish_p)
plt.xlim(2,100)
plt.xlabel('作品时长')
plt.ylabel('完播率')
plt.title("作品时长与完播率的关系")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

作品时长与点赞率的关系
like_p = data.groupby('duration_time')['like'].mean()
plt.plot(like_p)
plt.xlim(2,40)
plt.xlabel('作品时长')
plt.ylabel('点赞率')
plt.title("作品时长与点赞率的关系")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
观察结果:
作品绝大多数分布在7-10s中,总体来说在0s-22s之间都有一定数量的投稿,22s以上的就很少了。
播放量的分布基本与作品数量相同。
完播率在2s-40s内总体在40%以上,40s以后开始剧烈波动,因此作品时长应该设置在40s之内比较稳妥
点赞率在2s-10s内基本维持在1%之内,在12s-20s之间会在0.7%-1.1%之间波动,在20s以后数据变化的波动完全没有规律。

  • 结论2:视频时长最好在7-10s,其次是0-6s及23s以内,最长也不建议超过40s
作品发布时间(小时)与点赞完播率之间的关系
H_f_l = data.groupby('H')[['finish','like']].mean()
H_f_l.plot()
plt.title("作品发布时间与点赞完播率之间的关系")
  • 1
  • 2
  • 3

在这里插入图片描述

发布作品时间和播放量之间的关系
time_play_s = data.groupby('H')['uid'].count()
plt.plot(time_play_s)
  • 1
  • 2

在这里插入图片描述

24小时内用户投稿(发布作品)数量的变化

关注大多数用户都是什么时间投稿(考虑去重)

public_item_s = data.groupby('H')['item_id'].nunique()
plt.plot(public_item_s)
  • 1
  • 2

在这里插入图片描述
放在一起观察

  • 结论3:
    不同时间段内发布的作品点赞率和完播率不会有太大变化,整体播放量和投稿数也基本相同这说明播放量和投稿时间关系亦不大,不过还是可以看出0-5点的播放量会略高。如果投稿最佳时间是在0-5点,但并无特殊优势。

背景音乐播放量之间的关系

music_play_s = data.groupby(by='music_id')['uid'].count().sort_values(ascending=False)
top_10_music = music_play_s.iloc[:10]
top_10_music
  • 1
  • 2
  • 3

在这里插入图片描述

plt.plot(top_10_music.index.astype('str'),top_10_music.values)
  • 1

在这里插入图片描述

  • 结论4: 对于视频配乐更推荐当时最火的歌曲,会比其他歌曲更容易获得高播放量。

总结

为了使在抖音上的视频更高效地获得流量,获得播放量的关键就是获得算法推荐进入更大的流量池。视频时长最好在7-10s,其次是0-6s及23s以内,最长也不建议超过40s。不同时间段内发布的作品点赞率和完播率不会有太大变化,整体播放量和投稿数也基本相同这说明播放量和投稿时间关系亦不大,不过还是可以看出0-5点的播放量会略高。如果投稿最佳时间是在0-5点,但并无特殊优势。 对于视频配乐更推荐当时最火的歌曲,会比其他歌曲更容易获得高播放量。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/599554
推荐阅读
相关标签
  

闽ICP备14008679号