赞
踩
黄河科技学院本科毕业设计 任务书
工 学部 大数据与计算机应用 科教中心 计算机科学与技术 专业
2018 级普本1/专升本1班 学号 学生 指导教师
基于大数据的慕课平台课程学习数据行为分析可视化与个性化推荐
毕业设计工作内容与基本要求(目标、任务、途径、方法,应掌握的原始资料(数据)、参考资料(文献)以及设计技术要求、注意事项等)
一、设计的目标和任务
(1)使用PyCharm、IDEA等工具进行代码编写。
(2)结合机器学习、深度学习等数据分析技术构建模型。
(3)使用知识图谱、Spark、Hadoop等技术进行数据可视化大屏分析
(1)认真查阅相关文献资料,充分做好前期准备工作。
①到学校图书馆借阅机器学习和数据挖掘等方面的图书。
②从中国知网等网站查找相关论文 20 篇,重点阅读 10篇。
③通过查找相关课程视频,自主学习与本课题有关的知识。
(2)按照毕业论文(设计)相关文件要求独立完成毕业论文(设计)。
①完成课程推荐系统、可视化系统的设计与实现。
②撰写论文时,要有图表形象表达,要体现论文的主要特色。
二、设计途径和方法
(一) Selenium自动化Python爬虫工具采集慕课网课程课程数据、学习数据约80-100万条存入.csv文件作为数据集;
(二)使用pandas+numpy或MapReduce对数据进行数据清洗,生成最终的.csv文件并上传到hdfs;
(三)使用hive数仓技术建表建库,导入.csv数据集;
(四)离线分析采用hive_sql完成,实时分析利用Spark之Scala完成;
(五)统计指标使用sqoop导入mysql数据库;
(六)使用springboot+vue.js+echarts进行可视化大屏开发;
(七)使用协同过滤算法(基于用户/物品)、LSTM、SVD神经网络混合推荐模型、MLP模型等等进行个性化推荐。并进行参数优化、算法二次开发升级;
(八)使用卷积神经网络KNN、CNN实现课程流量预测;
(九)搭建springboot+vue.js前后端分离web系统进行个性化推荐界面、课程流量预测界面、知识图谱等实现;
三、应掌握的原始资料和技术
原始资料:
(一)慕课平台课程数据:
(二)学习者反馈数据:
(三)相关教育政策与标准:
(四)研究文献与案例:
技术:
(一)大数据技术:
(二)学习分析技术:
(三)个性化推荐技术:
(四)软件开发技术:
四、进度安排
第1周:查阅相关资料,完成文献综述。
第2周:结合课题要求,提交开题报告,并完成开题答辩。
第3~5周:进行系统分析、总体设计和详细设计。
第6~9周:实现系统编码、调试及软件测试。撰写毕业设计。
第10~12周:修改毕业设计至定稿,资格审查。
第13~14周:毕业设计答辩及资料归档。
五、参考文献
[1]尹旭熙.基于Hadoop和Spark的可扩展性化工类大数据分析系统设计[J].粘接,2021,46(06):81-83+93.
[2]李林国,查君琪,赵超等.基于Hadoop平台的大数据可视化分析实现与应用[J].西安文理学院学报(自然科学版),2022,25(03):53-58.
[3]杨志雄.大数据分析的机器学习算法研究[J].信息记录材料,2023,24(05):92-94.DOI:10.16009/j.cnki.cn13-1295/tq.2023.05.003.
[4]Ravesa A,Ahmad S S. Precision agriculture using IoT data analytics and machine learning[J]. Journal of King Saud University - Computer and Information Sciences,2022,34(8PB).
[5]Bernd S,Desiree K,Antonio G D, et al. Approach for machine learning based design of experiments for occupant simulation[J]. Frontiers in Future Transportation,2022.
[6]Kumar A,Sreenatha G A,Dubey K A, et al. Machine Learning Approaches and Applications in Applied Intelligence for Healthcare Data Analytics[M].CRC Press:2021-09-12.
[7]陈琦. 面向个性化课程推荐的深度学习方法研究[D].山东师范大学,2021.DOI:10.27280/d.cnki.gsdsu.2021.000635.
[8]卜南翔,徐述,王玉婷等.基于大数据平台的课程教学资源推荐系统应用探究[J].数码世界,2019(03):189.
[9]方思怡.标准知识图谱的技术路径与应用场景探讨[J].中国标准化,2023(11):49-55.
[10]郭芳清. 基于图神经网络的知识图谱推荐算法研究[D].大连理工大学,2022.DOI:10.26991/d.cnki.gdllu.2022.001269.
[11]郭婺,郭建,张劲松等.基于Python的网络爬虫的设计与实现[J].信息记录材料,2023,24(04):159-162.DOI:10.16009/j.cnki.cn13-1295/tq.2023.04.025.
[12]李明轩,李峰.人工智能时代知识图谱与深度学习的相互交融——评《知识图谱与深度学习》[J].中国科技论文,2023,18(02):240.
[13]汪娅.深度学习的认识论意蕴[J].哈尔滨学院学报,2022,43(12):12-16.
[14]魏胤真.基于计算机深度学习的个性化资源推荐算法研究[J].现代工业经济和信息化,2023,13(03):56-58.DOI:10.16525/j.cnki.14-1362/n.2023.03.020.
[15]韩厚畴. 基于深度学习的混合推荐算法研究[D].吉林大学,2022.DOI:10.27162/d.cnki.gjlin.2022.006503.
六、注意事项
(1)对于开发过程中遇到的问题注重自己查阅资料寻找解决方案,同时,多和导师沟通交流解决。
(2)寻找同类系统进行对比学习和参考,提高开发效率。
毕业设计时间: 2022年 12 月 19 日至 2023年 5 月 13 日
计划答辩时间: 2023年 5 月 13 日
工作任务与工作量要求:原则上查阅文献资料不少于12篇,其中外文资料不少于2篇;文献综述不少于3000字;毕业论文或设计说明书不少于8000字(同时提交有关图纸和附件)。毕业设计(论文)撰写规范及有关要求,请查阅《黄河科技学院本科毕业设计(论文)指导手册》。
下面是一个使用 PyTorch 实现的课程推荐算法的示例代码。这个示例实现了一个基于矩阵分解的协同过滤推荐系统:
- import torch
- import torch.nn as nn
- import torch.optim as optim
-
- # 假设有5个用户和10门课程
- num_users = 5
- num_courses = 10
- embedding_dim = 5
-
- # 模拟用户和课程的交互数据(用户ID,课程ID,评分)
- interactions = torch.tensor([[0, 1, 4.0],
- [1, 2, 3.0],
- [2, 0, 5.0]], dtype=torch.float)
-
- # 创建用户和课程的嵌入矩阵
- user_embedding = nn.Embedding(num_users, embedding_dim)
- course_embedding = nn.Embedding(num_courses, embedding_dim)
-
- # 定义模型
- class Recommender(nn.Module):
- def __init__(self, num_users, num_courses, embedding_dim):
- super(Recommender, self).__init__()
- self.user_embedding = nn.Embedding(num_users, embedding_dim)
- self.course_embedding = nn.Embedding(num_courses, embedding_dim)
-
- def forward(self, user_ids, course_ids):
- user_emb = self.user_embedding(user_ids)
- course_emb = self.course_embedding(course_ids)
- # 计算用户和课程之间的内积作为预测评分
- preds = torch.sum(user_emb * course_emb, dim=1)
- return preds
-
- # 初始化模型和优化器
- model = Recommender(num_users, num_courses, embedding_dim)
- optimizer = optim.Adam(model.parameters(), lr=0.01)
-
- # 训练模型
- for epoch in range(100):
- optimizer.zero_grad()
- user_ids = interactions[:, 0].long()
- course_ids = interactions[:, 1].long()
- ratings = interactions[:, 2]
-
- preds = model(user_ids, course_ids)
- loss = nn.MSELoss()(preds, ratings)
- loss.backward()
- optimizer.step()
-
- print(f'Epoch {epoch+1}, Loss: {loss.item()}')
-
- # 使用模型进行推荐
- user_id = torch.tensor([0])
- course_ids = torch.arange(num_courses)
- predicted_ratings = model(user_id, course_ids)
-
- print('Predicted ratings for user 0:')
- print(predicted_ratings)

这段代码演示了一个简单的协同过滤推荐系统,使用了用户和课程的 Embedding 层来学习用户和课程的表示。在训练过程中,模型尝试预测用户与课程之间的交互评分,并通过均方误差损失函数进行优化。最后,使用训练好的模型进行推荐时,可以输入用户ID,得到对所有课程的预测评分。
希望这个示例对你有帮助!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。