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

🌟欢迎来到 我的博客 —— 探索技术的无限可能!


🌟博客的简介(文章目录)


文章
       数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(一)
       数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(二)
       数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(总)
       数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(续)
代码
       数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(代码部分)


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

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

数据预处理

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

# 导包
import pandas as pd
import 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) + 1
author_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 pd
import numpy as np

from 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%",pos_top="55",orient='vertical')
        )
    )
    return chart
def fl_chart(t, data):
    chart = (
        Funnel(init_opts=opts.InitOpts(theme='light'
  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MATLAB数据分析挖掘实战 及配套实验数据和源代码 【简介】 随着企业的泛互联网化和企业信息化程度的不断提高,大数据的概念被提了出来,在大数据时代,数据对企业突显出越来越重要的价值,企业对数据的价值也越来越重视。目前国内不少高校将数据挖掘引入本科教学中,在数学、电子信息、金融等专业开设了数据挖掘技术相关的课程,但目前这一课程的教学仍主要限于理论介绍。以数学类专业为例,目前高校存在的困境主要 有:  师资队伍建设问题:缺少统计学及应用数学专业 的 双师型 教师  师范院校的统计学及应用数学专业在大数据时代该如何准确定位?  课程设置该怎样跟进与完善?  实践环节应该如何加强?  产学研以及院校合作怎样才能落到实处? 顶尖数据挖掘教学实训平台(TipDM T6 ,简称 T6 )是专门针对高校数据挖掘课程中,学员实际应用能力差这一教学弱点设计开发的一系列教学模块。能够让老师在讲解数据挖掘算法理论的同时,通过实用的建模工具来模拟实际应用案例,在实验室环境下体验实际应用,由此弥补学员实践经验的不足。在教学过程中,强化应用和 动手,做到理论与实践的有机结合,使学生受益,老师授课方便。 【适用对象】  有数据挖掘相关教学课程的高校、研究所和培训机构。  用数据挖掘进行科研的高校、研究所。  适用专业:统计学、数学与应用数学,以及金融、医疗、管理、电子商务等有数据挖掘教学专业。 特别说明:提供数据挖掘建模软件,同时协助指导教师构建特定专业的挖掘模型及编写相应实训指导书 。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZShiJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值