一种基于SpringBoot框架校园宿舍管理系统的设计与实现

2024-05-19 14:36郭甲天陈婷向阳
电脑知识与技术 2024年7期
关键词:剪枝舍友决策树

郭甲天 陈婷 向阳

摘要:在当今信息技术不断创新的背景下,学生身心健康问题越来越引起人们的关注。为了提高学生在校的幸福指数以及对宿舍的整体满意度,该系统在传统的宿舍管理系统中加入了基于MBTI测试的舍友匹配功能,该功能使用决策树算法,通过学生MBTI测试问卷的结果,进行算法预测分类,最后匹配出人格相似的室友,这样可以大大降低室友因性格不合而引发的身心健康问题,同时也体现了大学的人文关怀。该系统采用SpringBoot、VUE、MyBatis框架和MySQL数据库技术以及数据可视化技术相结合完成系统设计,同时设计了人员信息管理、宿舍信息管理、室友匹配管理、申请管理、测试问卷管理等功能模块。

关键字:软件开发;宿舍管理;SpringBoot;决策树算法;MBTI

中图分类号:TP311      文獻标识码:A

文章编号:1009-3044(2024)07-0037-04

开放科学(资源服务)标识码(OSID)

0 引言

随着高校招生规模不断扩大,学生人数逐渐增多,宿舍中人际矛盾也愈发明显。近年来不断有高校恶性事件发生,如校园霸凌、宿舍伤人事件等,而宿舍作为学生在大学生活中最重要的场所之一,也是在校停留时间最长的地方,对大学生日后的发展以及心理有着极为重要的作用。

因此,宿舍管理工作需要改变思维方式,改革服务模式,以更好地满足学生需求,提高管理效率,并推动校园信息化建设。所以,本系统旨在通过学生的MBTI测试,建立一个能够分配室友的宿舍管理系统,以达到改善宿舍工作管理的效果。本系统的优势在于:提高学生学习效率,改善宿舍整体满意度;减少宿舍的矛盾与冲突,提升学生幸福感;提高宿舍管理效率,体现大学的人文关怀。

1 国内外研究现状

2023年Han H等在“Research on the Intelligent Distribution System of College Dormitory Based on the Decision Tree Classification Algorithm”文献中,根据大学生个人偏好收集大一新生数据,进行分类比较,采用基于信息增益原理的决策树分类算法作为宿舍分配的核心算法,确定学生个人偏好和决策树分类偏好的描述规则,满足学生个性分类对宿舍的要求,为智能宿舍分配系统奠定了基础[1]。

2020年Fosnacht K等在“The Relationship of First-Year Residence Hall Roommate Assignment Policy with Interactional Diversity and Perceptions of the Campus Environment”文献中提出学生宿舍是进行多样化互动的场所,并且一个多元化的学生群体是有价值的,能够促进他们之间的学习和发展。研究了室友分配过程中如何影响学生的互动多样性和校园环境的看法,以及这些关系是否因种族或民族而异[2]。

2021年吴志丰等在《一种基于学生特性的智能宿舍分配方法与系统》文献中,设计了KMeans算法模型对学生进行统一的宿舍分配,包括学生客观信息提取,学生主观信息提取,综合学生各项信息形成学生特性模型,宿舍预分配并生成宿舍属性,学生选择是否愿意入住,结合学生实际意愿重新调整宿舍分配。帮助学校更高效,更合理地分配学生宿舍资源,体现以人为本的理念[3]。

2021年蒋晟等在《基于SpringBoot的学生宿舍管理系统的设计与实现》文献中,设计了SpringBoot架构模式与EasyUI前台框架相结合的学生宿舍管理系统,实现了学生的入住寝室与交换寝室管理、寝室卫生与日常的评级管理、宿舍的报修管理等功能,降低了管理宿舍的难度[4]。

2023年李镜焕等在《基于学生偏好的宿舍分配系统的设计与构建》文献中,针对学生自身住宿偏好,提出“生活习惯差异”等四类调查问题,以调查问卷的回收数据作为分析依据,采用基于信息增益原则的决策树分类算法作为宿舍分配的核心算法,确定基于学生自身偏好与决策树分类的偏好状态描述规则,得出最佳分类方法,以期满足学生对住宿分配的个性化需求,为高校宿舍智能分配系统奠定基础[5]。

2 算法设计

2.1 设计MBTI问卷

2.2 MBTI测试规则

通过对表1中用户选择的同类字母进行统计,选出个数最大的字母(共4个字母),作为最终的MBTI测试结果。本系统使用Java来调用Wake包中的J48决策树算法,以预测学生的MBTI人格类型,并且如果四个字母中有三个相同,也就是相似度大于或等于75%,就将其视为性格相似,匹配为舍友。具体匹配步骤如下。

1) 数据预处理,首先,需要将MBTI问卷结果转化为可以被J48算法接受的格式。每个字母可以作为一个特征,所以你需要将每个MBTI类型转化为一个特征向量。

2) 训练决策树模型,使用Java语言调用Wake包中的J48算法,根据学生MBTI测试的结果,对所有数据库中MBTI类型和对应的学生等数据来训练决策树模型。

3) 进行分类预测,对于每个学生,使用他们的MBTI类型和训练好的模型来进行预测。模型将返回一个预测的人格类型。

4) 根据预测的MBTI类型匹配舍友,检查每个学生预测的人格类型,当四个字母相似度大于等于75%时,进行舍友匹配,也可通过申请换宿,宿管进行审核后成为舍友。

2.3 决策树算法

2.3.1 熵

在信息论和概率统计中,熵表示随机变量不确定性的度量。设X是一个取有限个值的离散随机变量,其概率分布为:P(X=Xi)=pi,i=1,2,...,n。则随机变量X的熵定义为H(X)=-∑pi log pi。因熵只依赖于X的分布,而与X无关,所以可将X的熵记作H(p),即H(p)=-∑pi log pi。熵越大,随机变量的不确定性就越大。

当pi=1或pi=1时,H(p)等于0,此时随机变量是完全没有不确定性的。当pi=0.5时,H(p)等于1,此时熵取值最大,随机变量不确定性最大。

2.3.2 信息增益与ID3算法

信息增益是一种用来衡量特征对数据集分类能力的指标。在ID3算法中,特征选择准则是最大化信息增益。信息增益是通过计算数据集在某个特征上的条件熵与数据集的熵之间的差异得到的。具体步骤如下。

1) 计算数据集的熵H(D),即所有样本的类别分布的不确定性。

2) 计算特征A上进行划分后的条件熵HA(D),即对特征A每个取值下,数据集的平均不确定性。计算方式为:

[HA(D)=i=1mDiD×H(Di)]

式子中,m是特征A的取值个数,|Di|是特征A取值的i种情况下的样本数量,H(Di)是根据特征A的取值把数据集划分后得到的子集信息熵。

3) 通过将数据集的熵减去特征A的条件熵,得到该特征的信息增益Gain(A)。

[Gain(A)=H(D)-HA(D)]

信息增益越大,表示特征对于数据集的分类能力越强,能够减少数据集的不确定性。根据其大小选择最优的特征进行节点划分。ID3算法使用信息增益作为特征选择指标,可以帮助决策树算法确定最佳的特征来进行节点划分,从而构建出具有较好分类能力的决策树模型。

2.3.3 剪枝

决策树生成算法是一种通过递归过程构建决策树的方法,这个过程会持续进行直到无法进一步分割或者达到预设的停止条件。在构建决策树的过程中,每个内部节点代表一个特征测试,每个分支表示该特征的一个可能取值,而每个叶子节点则对应一个决策结果。为了防止过拟合并提高模型的泛化能力,剪枝技术被广泛应用。剪枝主要分为两种策略:预剪枝和后剪枝。

预剪枝是在决策树生长过程中实施的。该过程基于一些预先设定的规则或启发式策略来判断是否应继续分裂某个节点。预剪枝的优点是操作简单,但其缺点是可能会导致模型过于简化,从而丢失一些重要的细节和模式。

后剪枝则是在决策树完全生长之后进行的优化步骤。该过程首先构建出一棵完整的决策树,然后从底部的叶子节点开始,逐层向上检查是否可以通过删除某些子树或叶节点来改善模型的性能。如果删除某个节点后,整体模型的复杂性降低且预测精度没有明显下降,那么就会保留这个剪枝操作。后剪枝的优点是可以更精细地控制模型的复杂度,减少过拟合的风险,但其缺点是计算成本较高[6]。

3 系统设计

3.1 用例图设计

通过需求分析,本系统的总用例图如图1所示,共有3个参与者,分别为学生、宿舍管理员、超级管理员。

3.2 功能设计

1) MBTI问卷测试:学生在本模块进行填写属于自己的人格特质测试问卷,填写完后可显示自己的人格类型。

2) 生活问卷测试问卷:学生可以在此模块填写自己的生活习惯。

3) MBTI舍友匹配:学生可以在此模块匹配与之相似的舍友,具体是通过问卷中的4个字母组合进行分类预测。

4) 调宿管理:宿舍管理员可以在此模块查看并批阅学生所提交的调宿申请。

5) 楼宇房间信息管理:宿舍管理员在模块管理各个楼宇及房间信息。

6) 寝室人员分配:宿舍管理员通过后台对未住满的宿舍进行分配管理。

7) 学生信息管理:宿舍管理员在此模块进行学生的账号分配,学生信息等管理。

8) 宿管信息管理:超级管理员在此模块进行宿管的账号分配等管理。

9) 报修管理:宿舍管理员在此模块可以查看学生所提交的报修申请并进行审核。

10) 公告管理:宿舍管理员可以在此模块发送公告。

11) 访客管理:宿舍管理员在此模块可以进行访客的信息管理。

本系统的功能结构图如图2所示。

3.3 数据库设计

根据分析,可得到本系统的部分E-R图如图3所示。舍友分配需要7张表,分别存储学生信息、舍友分配信息、楼宇房间信息、换宿信息、MBTI信息等。

1) 学生信息表:用来存储学生基本信息,其中有性别、年龄、学号、姓名、联系方式等。

2) 宿舍表:用来存储整个学校宿舍的信息,其中记录着宿舍的房间号、楼层号、可容纳数。

3) 宿舍楼表:用来存储学校有多少个宿舍楼的信息,其中有楼栋信息和楼栋属性,楼栋属性有3个,分别为:男生宿舍楼、女生宿舍楼、教职工宿舍楼。

4) 换宿表:用来存储通过MBTI类型进行舍友匹配结果的信息,学生通过该匹配结果,选择合适的室友,申请换宿,宿舍管理员可以进行对换宿的状态进行修改。

5) 舍友分配表:用来存储每个学生的宿舍分配情况,主键是学生学号,外键是宿舍表的id,床位位号是一个多值属性,也就是多少个床位,床位数是根据宿舍表中的可容纳数来决定。

6) MBTI测试结果表:用来存储每个学生进行MBTI问卷测试得出结果的信息。

7) MBTI类型表:用来设置MBTI类型,其中需要设置16中MBTI类型,分别为INTJ、INTP、ENTJ、ENTP、INFJ、INFP、ENFJ、ENFP、ISTJ、ISFJ、ESTJ、ESFJ、ISTP、ISFP、ESTP、ESFP这16种人格特质类型。

4 系统实现

本系統的首页会对学生的人数、宿舍等信息进行统计并可视化展示。其次,在我的宿舍里可以看到自己的宿舍信息,以及舍友MBTI类型。通过MBTI测试的结果对舍友进行匹配,若是匹配到的舍友不在同一个宿舍,也通过点击“申请成为舍友”,最终宿管在后台进行审核后成为舍友。舍友匹配实现如图4所示。

5 结束语

本系统采用B/S模式进行开发,后端使用SpringBoot框架,前端使用VUE框架,数据库使用MySQL进行开发本系统。先在首页利用可视化技术进行数据展示,再根据学生MBTI的测试结果,结合决策树算法进行相似度比较并分类预测,得出与之类型相似的室友,希望能有效地解决传统管理方式存在的问题,提升高校宿舍管理效率,促进校园信息化建设的发展。

参考文献:

[1] HAN H,WANG B.Research on the Intelligent Distribution System of College Dormitory Based on the Decision Tree Classification Algorithm[J].当代教育研究(百图),2023,7(2):7-14.

[2] FOSNACHT K,GONYEA R M,GRAHAM P A.The relationship of first-year residence hall roommate assignment policy with interactional diversity and perceptions of the campus environment[J].The Journal of Higher Education,2020,91(5):781-804.

[3] 吴志丰,刘晨旭,姚金伟,等.一种基于学生特性的智能宿舍分配方法与系统:CN112766832A[P].2021-05-07.

[4] 蒋晟,陈科.基于SpringBoot的学生宿舍管理系统的设计与实现[J].现代信息科技,2021,5(12):6-9.

[5] 李镜焕,韩慧萍.基于学生偏好的宿舍分配系统的设计与构建[J].高校后勤研究,2023(8):28-31.

[6] 郑力嘉,宋冰.决策树分类算法的预剪枝与优化[J].自动化仪表,2023,44(5):56-62.

【通联编辑:朱宝贵】

猜你喜欢
剪枝舍友决策树
人到晚年宜“剪枝”
生活的快乐源泉——“奇葩”舍友
同一条毛巾
基于YOLOv4-Tiny模型剪枝算法
一种针对不均衡数据集的SVM决策树算法
决策树和随机森林方法在管理决策中的应用
剪枝
基于决策树的出租车乘客出行目的识别
特别像
新技能