基于 Python 的短视频用户行为分析系统
基于快手 KuaiRec / KuaiRand 数据集的短视频推荐分析平台,提供用户行为分析、推荐偏差检测、内容运营洞察、图神经网络推荐等完整分析链路。
项目封面

项目说明
基于 Python 的短视频用户行为分析系统
基于快手 KuaiRec / KuaiRand 数据集的短视频推荐分析平台,提供用户行为分析、推荐偏差检测、内容运营洞察、图神经网络推荐等完整分析链路。
功能模块
总览仪表盘 (Dashboard)
- 核心指标卡片:总用户数、总视频数、平均观看比率、完播率
- 活跃用户趋势:按日聚合的活跃用户数与交互次数折线图
- 时段分布:24小时交互量柱状图
行为分析 (Behavior)
- 工作日/周末对比:五维度(观看比率、播放时长、交互数、独立用户、独立视频)双组柱状图
- 行为漏斗:曝光 → 点击 → 点赞 → 评论 → 转发 → 关注的转化漏斗
- 完播率分析:按时长分桶(0-10s / 10-30s / 30-60s / 60s+)的完播率对比
- 留存分析:基于首日用户的7日留存率曲线
推荐偏差 (Bias)
- 偏差指标:位置偏差、时间偏差、用户偏差、内容偏差、公平性综合得分
- 流行度长尾分布:视频曝光量的长尾效应可视化(头部集中度、Top10%曝光占比)
- 位置偏差曲线:前20个推荐位置的CTR衰减趋势
- 曝光偏差模式:头部集中/位置优势/时间偏差/用户偏差/冷启动的五维柱状图
- 退出点分布:按会话长度分桶的用户退出率饼图
行为序列 (Sequence)
- 行为分布:skip/click/like/comment/forward/follow的比例饼图
- Top行为模式:高频行为2-gram/3-gram序列柱状图
- 兴趣漂移:按日期的Top标签热度变化多线图
- 退出类型分布:点赞后退出/评论后退出/点击后退出/跳过后退出饼图
用户聚类 (Clustering)
- KMeans聚类散点图:PCA降维后的二维散点,按簇着色
- 聚类雷达图:每个簇在观看深度/互动频率/内容偏好/活跃时段/播放时长五维的归一化雷达
- 运营建议:基于每个簇的特征差异自动生成策略建议
- 支持调节聚类数(3-10)并重新训练
内容分析 (Content)
- 供需分析:按标签维度的视频供给量与交互需求量双柱对比
- 品类竞争矩阵(BCG):市场份额 vs 增长率的气泡散点图
- 内容疲劳度:Top视频的完播率随时间下降趋势多线图,自动检测疲劳视频
- 新内容存活率:按早期曝光量分桶的存活率柱状图
- 多样性分布:Top标签的视频数量环形图 + Gini系数
NLP语义 (NLP)
- TF-IDF关键词:Top20关键词的TF-IDF均值柱状图
- 词频统计:Top15标签的频次柱状图
- t-SNE语义地图:视频语义嵌入的二维降维散点,按完播率着色
- 相似视频查询:输入视频ID,基于余弦相似度返回Top10相似视频
GNN推荐 (GNN)
- 图统计:用户数/视频数/交互数/社交节点数指标卡片
- 社交网络图:Force-layout用户-好友关系可视化
- 推荐结果:每个用户的Top5推荐视频及得分
- LightGCN训练:支持一键训练图神经网络模型
A/B实验 (ABTest)
- CTR对比:对照组 vs 实验组的CTR时序曲线
- 留存率对比:两组的留存率变化曲线
- KPI报告:CTR提升/留存提升/显著性/建议的四维指标卡
时序预测 (TimeSeries)
- 趋势预测:历史活跃用户数 + GRU/线性外推的未来5天预测(虚线区分)
- 兴趣漂移预测:CTR/点赞率/平均播放时长随时间变化的趋势线
系统管理 (System)
- 数据库状态:表名及记录数统计
- 模型管理:已训练的模型文件列表(自动过滤非模型文件)
- 一键重新训练:依次训练KMeans/LightGCN/TF-IDF三个模型,显示每个模型的耗时与状态
- 缓存管理:一键清除服务端缓存
目录结构
code/
├── app.py # Flask应用入口,注册蓝图、认证路由、页面路由
├── init_db.py # 数据库初始化与数据导入脚本
├── requirements.txt # Python依赖清单
├── mac_run.sh # macOS一键启动脚本
├── window_run.bat # Windows一键启动脚本
│
├── backend/
│ ├── config.py # 全局配置(路径、密钥)
│ ├── simple_cache.py # 文件缓存系统 + NumpyEncoder
│ ├── cache_manager.py # 缓存管理
│ ├── utils/ # 工具函数(safe_div, date_to_weekday等)
│ ├── database/
│ │ └── __init__.py # 数据库连接、建表、数据导入(KuaiRec/KuaiRand)
│ │
│ ├── analysis/ # 数据分析服务层
│ │ ├── behavior.py # 行为分析:漏斗、完播率、留存、工作日对比
│ │ ├── bias.py # 偏差分析:位置偏差、长尾分布、Gini系数
│ │ ├── content.py # 内容分析:供需、BCG矩阵、疲劳度、存活率、多样性
│ │ ├── clustering.py # 聚类分析:KMeans + PCA + 雷达图 + 运营建议
│ │ ├── abtest.py # A/B实验:对照组/实验组对比、KPI报告
│ │ └── sequence.py # 序列分析:行为模式、兴趣漂移、退出点
│ │
│ ├── gnn/
│ │ └── recommend.py # LightGCN图神经网络推荐
│ │
│ ├── nlp/
│ │ └── semantic.py # TF-IDF关键词、语义嵌入、t-SNE、相似度
│ │
│ ├── timeseries/
│ │ └── predict.py # GRU时序预测、兴趣漂移预测
│ │
│ └── api/ # Flask蓝图路由层(每个模块一个子目录)
│ ├── dashboard/ # GET /overview, /active_trend, /hourly
│ ├── behavior/ # GET /weekday_weekend, /funnel, /completion_rate, /retention
│ ├── bias/ # GET /summary, /patterns, /position, /exit_points
│ ├── content/ # GET /supply_demand, /category_matrix, /fatigue, /survival, /diversity
│ ├── sequence/ # GET /patterns, /interest_drift, /exit_points
│ ├── clustering/ # GET /result, /radar, /suggestions
│ ├── nlp/ # GET /tfidf, /word_cloud, /tsne_map, /similarity
│ ├── gnn/ # GET /graph_stats, /social_graph, /recommendations; POST /train
│ ├── abtest/ # GET /comparison, /retention, /kpi
│ ├── timeseries/ # GET /trend_prediction, /interest_drift
│ └── system/ # GET /status; POST /retrain_all, /clear_cache
│
├── frontend/
│ ├── templates/
│ │ ├── login.html # 登录/注册页
│ │ └── index.html # 主界面(侧边栏 + 11个Tab面板)
│ └── static/
│ ├── css/
│ │ ├── style.css # 自定义暗色主题样式
│ │ ├── bootstrap.css # Bootstrap 5
│ │ └── bootstrap-icons.css # 图标字体
│ ├── fonts/
│ │ └── bootstrap-icons.woff2
│ └── js/
│ ├── api.js # API封装(缓存、去重、图表工具、渐进式加载)
│ ├── app-main.js # Tab切换、侧边栏、全局交互
│ ├── bootstrap.js # Bootstrap JS
│ ├── echarts.js # ECharts图表库
│ └── tabs/
│ ├── dashboard.js # 总览模块
│ ├── behavior.js # 行为模块
│ ├── bias.js # 偏差模块
│ ├── sequence.js # 序列模块
│ ├── clustering.js # 聚类模块
│ ├── content.js # 内容模块
│ ├── nlp.js # NLP模块
│ ├── gnn.js # GNN模块
│ ├── abtest.js # A/B实验模块
│ ├── timeseries.js # 时序模块
│ └── system.js # 系统模块
│
├── data/
│ ├── analysis.db # SQLite主数据库
│ ├── cache_json/ # API响应缓存文件
│ ├── export/ # 数据导出目录
│ └── processed/ # 预处理的pkl数据文件
│
├── models/
│ ├── clustering/ # KMeans模型 (kmeans_model.pkl, scaler.pkl, pca_model.pkl)
│ ├── gnn/ # LightGCN模型 (lightgcn_model.pkl)
│ ├── nlp/ # 语义嵌入 (embeddings.pkl)
│ └── timeseries/ # GRU模型 (gru_model.pkl)
│
└── tests/
├── test_analysis.py
├── test_cache.py
└── test_utils.py
资料/
├── KuaiRec(快手稠密推荐数据集)/
│ └── data/ # big_matrix.csv, small_matrix.csv, item_feat.csv, social_network.csv
└── KuaiRand/
└── KuaiRand-Pure/
└── data/ # log_random_4_22_to_5_08_pure.csv 等随机曝光日志
数据源
| 数据集 | 说明 | 用途 |
|---|---|---|
| KuaiRec | 快手稠密推荐数据集(全观测交互矩阵) | 行为分析、完播率、聚类、GNN训练 |
| KuaiRand | 快手随机曝光数据集(无偏日志) | 偏差分析、A/B实验、行为漏斗 |
技术栈
- 后端: Flask + SQLite + Pandas + NumPy + scikit-learn + PyTorch
- 前端: ECharts + Bootstrap 5 + 原生JavaScript
- 模型: KMeans聚类 / LightGCN图推荐 / TF-IDF + t-SNE语义 / GRU时序预测
技术分类
包含内容
适用人群
学习参考与二次开发
关于 AI源码
AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。
相关推荐
查看全部 →
城市交通流量预测与拥堵成因分析系统
是一个面向城市交通拥堵分析的 monorepo,覆盖计算机设计课题中的主要能力链路:

电商用户行为漏斗与CRO转化率优化分析
电商用户行为漏斗与CRO转化率优化分析(E-Commerce Funnel CRO)是一套面向电商运营的数据分析平台,覆盖从用户访问到最终购买的完整漏斗链路,提供多维诊断、统计检验、PIE 优先级矩阵与 XGBoost 购买预测等能力,帮助运营团队精准定位转化瓶颈并制定优化策略。

多组学癌症预后预测分析系统
基于 Flask 的 Web 应用,用于上传 TCGA 风格合并表、做特征与标签概览、Cox 预后风险评分与生存相关可视化。模型在本地训练后以 形式加载,不提供旧版演示数据或假模型兜底。

基于 Apriori 算法的中药配伍审查系统
本系统是一个基于经典 Apriori 关联规则挖掘算法的中药配伍审查平台,使用真实中医药处方数据集(PTM-TKDE2018),实现药材频繁项集挖掘、关联规则生成与配伍禁忌审查。

基于 Python 的城市共享单车骑行需求时空分析系统
本系统是一个基于 Python Flask 框架的城市共享单车骑行需求时空分析平台,使用 Oslo City Bike(奥斯陆城市自行车)开放数据,提供系统总览、时间维度分析、空间维度分析、站点运营分析、OD 起讫流动分析、骑行需求预测、综合分析报告等功能模块,适用于城市共享单车运营调度与骑行需求研究场景。

基于 Python 的汽车市场数据分析与可视化平台
本平台是一个基于 Python Flask 框架的汽车市场数据分析与可视化系统,整合了多个真实汽车市场数据集,提供数据概览、车辆检索、多维分析、价格预测、品牌对比、技术规格分析、销量统计等功能模块,适用于汽车市场趋势研究和二手车价格预测场景。