MovieLens|电影推荐数据集|用户行为分析数据集
收藏MovieLens Recommendation System Project
概述
该项目作为哈佛X数据科学顶点课程的一部分开发,专注于使用MovieLens数据集构建电影推荐系统。目标是根据用户过去的评分预测电影评分,并使用**均方根误差(RMSE)**评估模型性能。
项目在两个编程环境中实现:
- Python使用Jupyter Notebooks,构建和可视化多个模型。
- R,使用R脚本和R Markdown确保可重复性和详细文档。
两种实现方式允许使用不同工具解决相同问题,同时产生可比较的结果。
项目结构
仓库组织如下:
├── Capstone.ipynb # Python Jupyter Notebook实现 ├── MovieReviews.R # 推荐系统的R脚本 ├── MovieReviews.Rmd # R实现的R Markdown报告 ├── MovieReviews.pdf # 从R Markdown生成的PDF报告 ├── README.md # 项目概述(本文件) ├── links.csv # MovieLens链接数据集 ├── movies.csv # MovieLens电影数据集 ├── ratings.csv # MovieLens评分数据集 ├── tags.csv # MovieLens标签数据集
数据集
项目使用MovieLens数据集的子集,包括:
ratings.csv
:用户对各种电影的评分。movies.csv
:电影标题和类型。tags.csv
:用户生成的电影标签。links.csv
:外部电影数据源(IMDB,TMDb)的标识符。
环境要求
Python环境
运行Python实现需要以下库:
pandas
numpy
scikit-learn
matplotlib
- Jupyter Notebook
可以使用pip
安装所需包:
bash pip install pandas numpy scikit-learn matplotlib jupyter
R环境
对于R实现,需要以下R包:
tidyverse
caret
可以使用以下命令安装:
r install.packages("tidyverse") install.packages("caret")
模型开发
项目涉及以下步骤:
- 将数据集拆分为训练(
edx
)和验证(final_holdout_test
)集。 - 构建和评估多个模型以预测电影评分。
- 可视化结果并比较每个模型的RMSE。
实现的模型
在Python和R中,实现了以下模型:
-
基线模型:使用所有电影的平均评分作为预测。
- Python RMSE:
0.9665
- R RMSE:
1.0425
- Python RMSE:
-
电影效应模型:通过调整单个电影效应来考虑电影特定的偏差。
- Python RMSE:
0.9665
- R RMSE:
0.9617
- Python RMSE:
-
电影 + 用户效应模型:在电影效应的基础上加入用户特定的偏差。
- Python RMSE:
0.9071
- R RMSE:
0.8731
- Python RMSE:
-
正则化电影 + 用户效应模型:通过在电影和用户偏差上添加惩罚项来防止过拟合。
- Python RMSE:
0.8742
- R RMSE:
0.8527
- Python RMSE:
-
混合模型:结合多种模型(电影效应、用户效应、正则化)并利用矩阵分解(SVD)和K近邻(KNN)。
- Python混合模型RMSE:
0.8655
- Python混合模型RMSE:
可视化(Python)
在Jupyter Notebook中生成了多个可视化图表,以分析和说明数据和模型性能:
- 评分分布:显示评分的分布,突出显示整数峰值。
- 前10部评分最多的电影:条形图显示哪些电影获得最多评分。
- 按电影年份的平均评分:散点图显示基于电影发行年份的平均评分。
- RMSE比较:比较不同模型RMSE的条形图。
结果比较
Python和R实现的结果在模型之间相似,正则化电影 + 用户效应模型在两种环境中表现最佳:
模型 | Python RMSE | R RMSE |
---|---|---|
基线模型 | 0.9665 | 1.0425 |
电影效应模型 | 0.9665 | 0.9617 |
电影 + 用户效应模型 | 0.9071 | 0.8731 |
正则化电影 + 用户模型 | 0.8742 | 0.8527 |
混合模型 | 0.8655 | N/A |
结论
该项目展示了使用Python和R构建电影推荐系统的过程。最佳性能是通过正则化电影 + 用户效应模型实现的,R中的RMSE为0.8527
。未来的改进可以包括高级技术,如矩阵分解或神经网络,以进一步优化系统。

中国交通事故深度调查(CIDAS)数据集
交通事故深度调查数据通过采用科学系统方法现场调查中国道路上实际发生交通事故相关的道路环境、道路交通行为、车辆损坏、人员损伤信息,以探究碰撞事故中车损和人伤机理。目前已积累深度调查事故10000余例,单个案例信息包含人、车 、路和环境多维信息组成的3000多个字段。该数据集可作为深入分析中国道路交通事故工况特征,探索事故预防和损伤防护措施的关键数据源,为制定汽车安全法规和标准、完善汽车测评试验规程、
北方大数据交易中心 收录
中国气象数据
本数据集包含了中国2023年1月至11月的气象数据,包括日照时间、降雨量、温度、风速等关键数据。通过这些数据,可以深入了解气象现象对不同地区的影响,并通过可视化工具揭示中国的气温分布、降水情况、风速趋势等。
github 收录
PDT Dataset
PDT数据集是由山东计算机科学中心(国家超级计算济南中心)和齐鲁工业大学(山东省科学院)联合开发的无人机目标检测数据集,专门用于检测树木病虫害。该数据集包含高分辨率和低分辨率两种版本,共计5775张图像,涵盖了健康和受病虫害影响的松树图像。数据集的创建过程包括实地采集、数据预处理和人工标注,旨在为无人机在农业中的精准喷洒提供高精度的目标检测支持。PDT数据集的应用领域主要集中在农业无人机技术,旨在提高无人机在植物保护中的目标识别精度,解决传统检测模型在实际应用中的不足。
arXiv 收录
熟肉制品在全国需求价格弹性分析数据
为更好了解各市对熟肉制品的市场需求情况,本行业所有企业对相关熟肉制品需求弹性数据进行采集计算。如果熟肉制品需求量变动的比率大于价格变动的比率,那么熟肉制品需求富有弹性,说明顾客对于熟肉制品价格变化的敏感程度大,弹性越大,需求对价格变化越敏感,本行业所有企业可以在该市适当的降低熟肉制品价格来获得较多的收益。如果熟肉制品需求缺乏弹性,本行业所有企业可以在该市适当的提高熟肉制品价格来获得较多的收益。该项数据对本行业所有企业在全国的市场营销决策有重要意义。1.数据采集:采集相关熟肉制品在某一时间段全国的的需求数据和价格数据,按照市级进行整理归纳,得到该熟肉制品的需求量变动数值和价格变化数值。 2.算法规则:对采集得到的数据按照如下公式进行计算:需求弹性系数Ed=-(△Q/Q)÷(△P/P),得到需求弹性系数。式中:Q表示产品的需求量,单位为份;P表示产品的价格,单位为元;△Q表示需求量同比变动值,单位为份;△P表示价格同比变动值,单位为元。取需求弹性系数的绝对值|Ed|作为分析数据时的参考系数。 3.数据分析:根据|Ed|的数值可分析该熟肉制品的需求价格弹性。(1)|Ed|=1(单位需求价格弹性),说明需求量变动幅度与价格变动幅度相同;(2)1<|Ed|(需求富有弹性),说明需求量变动幅度大于价格变动幅度;(3)|Ed|<1(需求缺乏弹性),说明需求量变动幅度小于价格变动幅度。
浙江省数据知识产权登记平台 收录
典型分布式光伏出力预测数据集
光伏电站出力数据每5分钟从电站机房监控系统获取;气象实测数据从气象站获取,气象站建于电站30号箱变附近,每5分钟将采集的数据通过光纤传输到机房;数值天气预报数据利用中国电科院新能源气象应用机房的WRF业务系统(包括30TF计算刀片机、250TB并行存储)进行中尺度模式计算后输出预报产品,每日8点前通过反向隔离装置推送到电站内网预测系统。
国家基础学科公共科学数据中心 收录