{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":31254,"databundleVersionId":3103714,"sourceType":"competition"}],"dockerImageVersionId":30786,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# 《实验报告5：PySpark推荐系统》\n---\n### 实验内容：\n1. 创建基于内容的推荐系统\n2. 创建基于用户的协同过滤推荐系统\n3. 使用Spark MLlib创建基于模型的推荐系统。\n\n### 实验目标：\n1. 学会余弦相似度的计算\n2. 掌握Spark MLlib ALS算法。\n3. 练习陌生数据的预处理与探索性分析。\n4. 复习PySpark的特征工程工具、管道工具、交叉验证工具。\n\n### 实验提示:\n\n\n### 实验报告作业提交要求: \n### 本次实验为个人作业，每位同学须单独完成并提交以下文档\n1. 实验报告提交清单\n   - （1）**完成的PDF格式的Jupyter Notebook + 填写好的实验报告纸**：\n       - 请用浏览器的打印功能，将本Jupyter Notebook打印为PDF文档，命名为　**组号-学号-姓名-实验报告5.pdf**，提交到相应的超星平台作业提交处。\n       - 提交的PDF文档需要完整显示（１）问题、（2）你输入的代码、（3）运行代码输出的结果、（4）对问题的回答。\n       - 由于可存档的PDF文件是实验报告归档的必要内容，实验作业将根据PDF显示的结果打分，**未提交PDF文档本次实验0分**。\n       - 请将实验报告纸模板作为该文档的封面，无法合并PDF的小组，可以分开提交两份PDF，并将实验报告纸模板命名为　**组号-学号-姓名-实验报告5-封面.pdf**。\n   - （2）**完成的ipynb格式的Jupyter Notebook**：请同时提交ipynb格式的完成的Jupyter Notebook到相应的超星平台作业提交处，以作代码相似度分析，**未提交ipynb文档本次实验0分**。\n2. 在每一题中，请根据要求填写代码，或将不完整的代码补充完整，并回答相应问题。本次实验总分**22**分。","metadata":{}},{"cell_type":"markdown","source":"# H&M推荐系统\n1. 请对/kaggle/input/h-and-m-personalized-fashion-recommendations中的数据进行探索性分析。由于数据较大，注意进行数据抽样，选取一个数据子集进行探索和建模。","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"2. 请以你的学号为随机种子，随机选取任意10个用户的ID，创建一个名为user_list的python list。","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"3. 创建一个基于内容的推荐系统。","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"4. 用上述推荐系统，向user_list中的用户各推荐3个产品，列出产品的名称和类别。","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"5. 创建一个基于用户的协同过滤推荐系统。","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"6. 用上述推荐系统，向user_list各推荐3个产品，列出产品的名称和类别。","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"7. 请选择一组超参数，创建一个基于模型的服装推荐系统。（请以学号为随机种子分割训练集测试集）","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"8. 用上述推荐系统，向user_list各推荐3个产品，列出产品的名称和类别。","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"9. 请使用交叉验证工具，测试最优的超参组合。最优模型的超参分别是什么？RMSE是多少？（请以学号为随机种子分割训练集测试集）","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"10. 用上述推荐系统，向user_list各推荐3个产品，列出产品的名称和类别。","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"11. 比较上述三种推荐模型的结果，你有什么看法？","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}