当前位置:   article > 正文

计算机毕业设计hadoop+spark+hive知识图谱高考志愿填报推荐推荐系统 高考数据分析可视化大屏 高考爬虫 高考分数线预测 数据仓库 大数据毕业设计 机器学习 深度学习

计算机毕业设计hadoop+spark+hive知识图谱高考志愿填报推荐推荐系统 高考数据分析可视化大屏 高考爬虫 高考分数线预测 数据仓库 大数据毕业设计 机器学习 深度学习

毕业论文(设计)任务书

题目

基于协同过滤算法的高考志愿填报系统

学生姓名

学号

专业

智能科学与技术(全称)

班级

19智科1(简称)

指导教师

院部

智能与工程学院

课题意义、内容和要求

意义

高考是中国的大学招生的学术资格考试,在目前看来,高考的考试类型有两种,一种是文理分科,另一种是新高考模式。传统的文理分科是将学生分成两个类型,一种是文科,除了语数外三门课以外需要学习政史地,理科相对应的就需要学习物化生。根据学生的高考成绩和每个大学在所对应省份的总体招生计划来分梯度划线,也就是我们常说的重本线,二本线和专科线。

高考填报志愿对每个考生都非常重要,每年全国有数百万家庭使用网络了解高考支援志愿信息并推荐填报志愿。对于很大一部分考生和家长来说,短时间了解全国数千所高等院校的招生标准、历史录取分数、专业要求等信息非常困难。往往由于信息的缺失或错误造成高考志愿与考生成绩之间的较大差异,对考生造成不可挽回的损失。

目前,全国大部分省(自治区、直辖市)都是高考成绩公布后开始填报志愿,大部分家长和考生仅仅利用招生考试机构公布志愿填报日程几天时间,从近2700所高校和500多个专业中做出选择,对很多毫无经验的家长和考生来说“难于上青天”。因为影响高考志愿因素太多,如考生职业生涯规划、个人和家庭情况、分数、院校、专业、城市、高考志愿政策规则、填报策略技巧、近3到5年录取数据、录取概率测算、就业情况等,如果仅在几天内通过传统手段,以手工查阅书籍材料,往往会因为资料难找、耗时长、易疲劳出错等原因,填报志愿和最终录取去向往往不尽如人意。

《中国青年报》社会调查中心发起的一项10万人参加的抽样调查,超过71.2%的人后悔当年的高考志愿。我们可以在新闻媒体或网络上看到很多志愿填报不科学的典型案例,其中很多是高材生。

2008年周某以青海省第三名的成绩被北京大学生命科学学院录取,两年后周某选择转学到了北京工业技师学院。2017年李某从中国科学技术大学退学补习,2018年高考以云南省理科第8名的好成绩拒绝清华大学和北京大学发出的邀请,选择了四川大学口腔专业。2017年广西理科高考第3名考生,填错高考志愿批次,最后通过征集获得录取。2017年浙江省646高分考生竟报考独立学院,全省被独立学院录取的600分以上考生多达9人。

现实中,还有很多高考过来人默默承受着高考志愿填报失误带来的痛,比如对专业不满意、对院校不满意、填错批次、错过填报时间、被退档、毕业后从事与自己所学专业毫无关联的工作等。

在本项目中主要研究的是传统文理分科的高考模式,因为这种模式有着大量的数据支撑,提供训练,能够高精度地做出预测。而新考高模式刚刚施行,其数据是不足以支撑训练,从而做出预测。高考录取填报推荐志愿方式,梯度志愿和混合录取,经过不断优化,平行志愿已成为了高考录取的主流,大部分省份都采取平行志愿,所以本次项目也就平行志愿的录取方式来进行研究。即分数优先,满足偏好的方式,所以本项目着重对学生位次进行研究。针对高考这一热门话题,国内外都有着不少的专家学者对其进行研究,在过去的实践中,人们往往选用经典的时间序列方法来解决预测高校录取问题,即利用近5年高校录取的分数线,名次求平均值来预测当年的分数线,但是利用时间序列预测,就必须保证时间序列的过去值、当前值、和未来值之间存在着某种确定的函数关系。所以这养的预测是不够精确,不够完善的。除了基于时间序列的预测以外,还有人通过录取线差法来对高考录取进行研究,所谓录取线差是指考生意向院校当年平均录取分数与其所在招生批次录取控制分数线的差值。但是,每年高考试卷难度有别,造成了各个院校各年度的录取分数可能发生较大的变化。

综合来看,基于协同过滤算法的高考志愿填报系统的相关研究在国内外都不多,未来的发展空间都很大。在未来的研究中可以结合数据分析、规划优化、机器学习和协同过滤推荐算法等领域的相关方法,利用Spark的大数据处理能力,设计和实现一套可行的高考志愿推荐系统。这将为考生提供更好的填报建议,提升高考志愿填报的准确性和个性化程度。

因此,我们使用软件工程面向对象的思想,开发一个高考志愿填报推荐系统,为高考结束的学生提供智能化推荐服务、往年报考信息可视化统计等,提高学生志愿填报的准确度,加深学生对往年报考信息的认识深度,有助于志愿的合理填报。

内容

  1. Python爬虫采集阳光高考近年高考数据约10-20万条作为分析数据集(含省控线、专业线、学校信息等)。
  2. 使用人工智能领域的知识进行高考志愿智能推荐,如协同过滤推荐算法、SVD神经网络混合推荐算法、MLP模型、知识图谱利器neo4j等。
  3. 采用neo4j图数据库,挖掘分数线、学校、专业之间的关系,借助d3.js以及springboot进行智能化、可视化关系图创建。
  4. 开发情感分析模块,用户可以对院校、专业进行点评。借助自然语言处理技术lstm人工智能模型,对评论进行情感分析。
  5. 使用springboot+vue.js+echarts制作智能化大屏,对高考数据进行多维度分析统计。
  6. 使用人工智能技术如线性回归算法、KNN卷积神经等知识对未来高考分数线进行预测。

要求

  1. 项目深度要求
  1. 海量完整高考数据的获取与整理;
  2. 深度学习模型对高考志愿进行推荐,优化传统的协同过滤算法,提高推荐精度。
  3. 借助Neo4j图数据库深度挖掘分数线、学校、专业之间的关系。
  4. 大表统计查询数据量较大,需要对mysql数据库进行优化如索引、引擎等。
  5. 将预测算法融合近年的分数数据进行预测。
  1. 技术要求
  1. 爬虫技术:python的requests、xpath模块等。
  2. 数据库技术:mysql关系型数据库、neo4j图数据库。
  3. 前端技术:vue.js、d3.js、echarts。
  4. 后端技术:springboot、mybatis-plus。
  5. 人工智能技术:svd神经网络、MLP模型、lstm模型等。

进度计划

  1. 第1-3周熟悉题目,对的开发流程和使用进行熟悉和分析,完成开题报告、文献综述以及需求分析。
  2. 第4-5周完成总体设计,确定采集目标数据集,进行标签。完成web展示系统非核心功能。
  3. 第6-9周初步使用Python+Spark做预训练模型,形成协同过滤推荐算法脚本、卷积神经网络预测算法脚本。集成知识图谱到neo4j图数据库中。
  4. 第10-12周对将算法整合到web展示系统中,完成系统算法部分功能。
  5. 第13-16周根据系统设计过程中的记录文挡及其功能编写毕业论文。

成果要求(包括成果的形式、数量等)

1.毕业设计说明书1份,不少于10000字;

2.毕业设计代码电子文件一套;

3.系统效果演示,软件演示视频一套。

主要参考文献和作品

[1]孙浩然,武雪明,吉雪芸.高考志愿智能推荐系统的设计与实现[J].电脑知识与技术,2023,19(09):41-45.DOI:10.14004/j.cnki.ckt.2023.0427.

[2]白俊杰. 基于混合推荐的高考志愿推荐系统的设计与实现[D].内蒙古大学,2022.DOI:10.27224/d.cnki.gnmdu.2022.001490.

[3]孟真. 基于Spark的高考推荐系统设计与实现[D].山东师范大学,2022.

[4]银虹宇. 基于大数据的高考志愿推荐系统的设计与实现[D].电子科技大学,2021.

[5]谢雷,唐旭,钟立国. 基于Spark的高考志愿填报系统设计与实现[J]. 计算机工程与设计, 2022, 38(9): 2461-2465.

[6]唐旭,钟立国,谢雷. 基于Spark的高考志愿填报系统设计与实现[J]. 现代计算机, 2022, 40(8): 129-132.

[7]李坤,田田. 基于Spark的高考志愿填报系统设计与实现[J]. 电脑知识与技术, 2021, 15(3): 80-81.

[8]陈娟,黄林伟. 基于Spark的高考志愿填报系统设计与实现[J]. 现代电子技术, 2021, 43(4): 181-184.

[9]基于Spark的高考志愿填报系统设计与实现 作者:谢雷,唐旭,钟立国 出处:《计算机工程与设计》,2022年,第38卷,第9期

[10]Guo, M., Zhang, J., Zhang, J., & Li, J. (2023). Research on Design and Implementation of College Entrance Examination Volunteer Recommendation System Based on Spark. In 2023 International Conference on Artificial Intelligence and Big Data (ICAIBD) (pp. 104-107).

[11]Wang, Y., Liu, W., Zhu, M., Li, H., & Li, J. (2023). Design and Implementation of College Entrance Examination Volunteer Recommendation System Based on Big Data Analysis. In 2023 2nd International Conference on Mathematics, Modeling, Simulation and Education Application (MMSEA) (pp. 1-4).

[12]Wang, Z., & Guo, C. (2023). Design and Implementation of College Entrance Examination Volunteer Recommendation System Based on Big Data Analysis. In 2023 IEEE International Conference on Big Data (Big Data) (pp. 4494-4496).

[13]Zhang, Y., & Li, S. (2023). Design and Implementation of College Entrance Examination Volunteer Recommendation System Based on Spark. In 2023 International Conference on Data Science and Advanced Analytics (DSAA) (pp. 535-539).


(此页由系统自动生成,归档时替换系统自动生成签署页)

签署

指导教师确认签字:

签字:                年   月   日

系主任确认签字:

签字:                年   月   日

核心算法代码分享如下:

  1. # -*- codeing = utf-8 -*-
  2. # 创建图谱专用的json文件
  3. #
  4. import numpy as np
  5. import pandas as pd
  6. import json
  7. from db import db_util
  8. d = db_util()
  9. db, cursor = d.get_conn()
  10. def build():
  11. s_dict = {}
  12. t_dict = {}
  13. ret = []
  14. ind1 = 10000
  15. ind2 = 20000
  16. ind3 = 30000
  17. rind = 900000
  18. sql = 'select * from school'
  19. df = pd.read_sql(sql, con=db)
  20. for index, row in df.iterrows():
  21. province = row['province_name']
  22. type = row['type']
  23. if province not in s_dict:
  24. ind2 = ind2 + 1
  25. s_dict[province] = ind2
  26. index2 = ind2
  27. else:
  28. index2 = s_dict[province]
  29. if type not in t_dict:
  30. ind3 = ind3 + 1
  31. t_dict[type] = ind3
  32. index3 = ind3
  33. else:
  34. index3 = t_dict[type]
  35. properties = {"name": row['school_name'], '城市': row['city_name'], '性质':row['nature'], '联系电话':row['phone'] }
  36. start = {'identity': index, 'labels':['学校'], 'properties':properties}
  37. end = {'identity': index2, 'labels':['省份'], 'properties':{"name": province}}
  38. relationship = {"identity": rind, "start": index,"end": index2,
  39. "type": "type", "properties": {"name": "所在省份"}}
  40. rind = rind + 1
  41. segments = []
  42. segments.append(dict(start=start, relationship=relationship, end=end))
  43. end = {'identity': index3, 'labels': ['办学类型'], 'properties': {"name": type}}
  44. relationship = {"identity": rind, "start": index, "end": index3,
  45. "type": "type", "properties": {"name": "办学类型"}}
  46. rind = rind + 1
  47. segments.append(dict(start=start, relationship=relationship, end=end))
  48. p = dict(segments=segments, length=1.0)
  49. ret.append(dict(p=p, score=2))
  50. json_str = json.dumps(ret, ensure_ascii=False)
  51. with open('test.json', 'w', encoding='utf8') as f2:
  52. # ensure_ascii=False才能输入中文,否则是Unicode字符
  53. # indent=2 JSON数据的缩进,美观
  54. json.dump(ret, f2, ensure_ascii=False, indent=2)
  55. print(json_str)
  56. print("end..")
  57. if __name__ == '__main__':
  58. build()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/572530
推荐阅读
相关标签
  

闽ICP备14008679号