跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(代码部分)

数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(代码部分)

时间:2024-05-03 14:10:46 来源:网络cs 作者:晨起 栏目:卖家故事 阅读:

标签: 数据  挖掘  分析  部分  浏览  实战  用户 
阅读本书更多章节>>>> 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(代码部分)

数据集下载:抖音用户浏览行为数据集

数据预处理

        首先,需要获取抖音用户的浏览行为的相关数据集,包括用户的观看记录、点赞记录、评论记录、分享记录等。这可以从数据库中提取数据、采集网络数据、使用API 访问数据源或与合作伙伴合作获得数据,也可以通过与抖音平台合作获得用户数据,使用API访问数据接口或其他合法的数据收集手段来实现。

# 导包import pandas as pdimport numpy as np
# 1. 数据简单处理——读入数据df = pd.read_csv('douyin_dataset.csv')df.head()
del df['Unnamed: 0']#无效字段的删除[Unnamed:0]
# 数据基本信息基本信息df.info(null_counts = True)

特征指标构建

        根据问题的需求和数据的特点,进行特征选择、提取和转换。例如,可以从用户的浏览行为数据中提取特征,如观看时长、点赞数、评论数、分享数等,或者通过文本挖掘技术提取用户的评论内容特征,可以包括对原始特征进行数值化、编码分类变量、创建新特征等操作。

# 2. 特征指标统计分析## 2.1 用户特征统计分析user_df = pd.DataFrame()user_df['uid'] = df.groupby('uid')['like'].count().index.tolist() # 将所有用户的uid提取为uid列user_df.set_index('uid', inplace=True) # 设置uid列为index,方便后续数据自动对齐user_df['浏览量'] = df.groupby('uid')['like'].count() # 统计对应uid下的浏览量user_df['点赞量']  = df.groupby('uid')['like'].sum() # 统计对应uid下的点赞量user_df['观看作者数'] = df.groupby(['uid']).agg({   'author_id':pd.Series.nunique}) # 观看作者数user_df['观看作品数'] = df.groupby(['uid']).agg({   'item_id':pd.Series.nunique}) # 观看作品数user_df['观看作品平均时长'] = df.groupby(['uid'])['duration_time'].mean() # 浏览作品平均时长user_df['观看配乐数'] = df.groupby(['uid']).agg({   'music_id':pd.Series.nunique}) # 观看作品中配乐的数量user_df['完整观看数']  = df.groupby('uid')['finish'].sum() # 统计对应uid下的完整观看数# 统计对应uid用户去过的城市数量user_df['去过的城市数'] = df.groupby(['uid']).agg({   'user_city':pd.Series.nunique})# 统计对应uid用户看的作品所在的城市数量user_df['观看作品城市数'] = df.groupby(['uid']).agg({   'item_city':pd.Series.nunique})user_df.describe()user_df.to_csv('用户特征.csv', encoding='utf_8_sig')
## 2.2 作者特征统计分析author_df = pd.DataFrame()author_df['author_id'] = df.groupby('author_id')['like'].count().index.tolist()author_df.set_index('author_id', inplace=True)author_df['总浏览量'] = df.groupby('author_id')['like'].count()author_df['总点赞量']  = df.groupby('author_id')['like'].sum()author_df['总观完量']  = df.groupby('author_id')['finish'].sum()author_df['总作品数'] = df.groupby('author_id').agg({   'item_id':pd.Series.nunique})item_time = df.groupby(['author_id', 'item_id']).mean().reset_index()author_df['作品平均时长'] = item_time.groupby('author_id')['duration_time'].mean()author_df['使用配乐数量'] = df.groupby('author_id').agg({   'music_id':pd.Series.nunique})author_df['发布作品日数'] = df.groupby('author_id').agg({   'real_time':pd.Series.nunique})# pd.to_datetime(df['date'].max()) - pd.to_datetime(df['date'].min()) # 作品时间跨度为40,共计40天author_days = df.groupby('author_id')['date']_ = pd.to_datetime(author_days.max()) - pd.to_datetime(author_days.min())author_df['创作活跃度(日)'] = _.astype('timedelta64[D]').astype(int) + 1author_df['去过的城市数'] = df.groupby(['author_id']).agg({   'item_city':pd.Series.nunique})author_df.describe()author_df.to_csv('作者特征.csv', encoding='utf_8_sig')
## 2.3 作品特征统计分析item_df = pd.DataFrame()item_df['item_id'] = df.groupby('item_id')['like'].count().index.tolist()item_df.set_index('item_id', inplace=True)item_df['浏览量'] = df.groupby('item_id')['like'].count()item_df['点赞量']  = df.groupby('item_id')['like'].sum()item_df['发布城市'] = df.groupby('item_id')['item_city'].mean()item_df['背景音乐'] = df.groupby('item_id')['music_id'].mean()item_df.to_csv('作品特征.csv', encoding='utf_8_sig')

①数据可视化分析—用户特征分析

import pandas as pdimport numpy as npfrom pyecharts.charts import *from pyecharts import options as opts
def line_chart(t, data):# 曲线图    chart = (        Line(init_opts = opts.InitOpts(theme='light', width='500px', height='300px'))        .add_xaxis([i[0] for i in data])        .add_yaxis(            '',            [i[1] for i in data],            is_symbol_show=False,            areastyle_opts=opts.AreaStyleOpts(opacity=1, color="cyan")        )        .set_global_opts(            title_opts=opts.TitleOpts(title=t),            xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=True),            yaxis_opts=opts.AxisOpts(                type_="value",                axistick_opts=opts.AxisTickOpts(is_show=True),                splitline_opts=opts.SplitLineOpts(is_show=True),            ),        )    )    return chart
def pie_chart(t, data_pair):    # 新建一个饼图    chart = (        Pie(init_opts=opts.InitOpts(theme='light', width='550px', height='300px'))        .add('', data_pair ,radius=["30%", "45%"], # 半径范围,内径和外径            label_opts=opts.LabelOpts(formatter="{b}: {d}%") # 标签设置,{d}表示显示百分比        )        .set_global_opts(            title_opts=opts.TitleOpts(                title=t             ),            legend_opts=opts.LegendOpts(pos_left="0%"
阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-05-03/164484.html,文章来源:网络cs,作者:晨起,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论