2023 校内大学生数学建模竞赛
承 诺 书
我们仔细阅读了大学生数学建模竞赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮
件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问
题。
我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他
公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正
文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反
竞赛规则的行为,我们将受到严肃处理。
参赛队员:
1.姓名: 学号: 班级:
2.姓名: 学号: 班级:
3.姓名: 学号: 班级:
日期 2023 年 5 月 27 日
基于餐厅消费数据的隐形资助模型——XGBoost 预测模型
摘 要
本文探讨了一种新型的隐性资助模型——基于大学生餐厅消费数据的隐形
资助模型。在当前社会中,精准资助的重要性日益凸显。特别是对于高校家庭经
济困难学生,如何准确识别他们并提供有效的援助,是当前高等教育贫困援助工
作的关键问题。我们利用大数据技术,通过统计和分析大学生的餐厅消费数据,
建立隐性资助模型。该模型将能够根据学生的消费数据,评估其经济贫困程度,
然后精准地给予援助。助力教育路上的精准扶贫。
在构建模型之前,我们首先对数据进行了必要的处理,并对两类数据集进行
特征提取,总计提取到 20 多个特征,用于后续的模型构建。
在解决问题 1 时,我们采用了 k-means 聚类算法,通过肘部法则取 k 值为
3,对第一学年的学生进行聚类,类别 1 的学生是消费最低但最稳定的群体。类
别 3 的学生是消费最高但最不稳定的群体,他们可能是经济状况较好或者更愿
意消费的学生。类别 2 的学生在这两者之间,消费水平和消费稳定性都中等。
然后我们计算了这些群体的三年的消费特征的均值,绘制图表,来体现这些
群体三年来的消费特征变化。三个群体的学生在三年的时间里,其消费均价都在
上升,而消费次数在下降,这可能表明他们的消费能力在提高,同时他们的消费
习惯也变得更加稳定。
在解决问题 2 时,我们构建了 XGBoost 模型,同时使用交叉验证、启发式算
法寻优来提高模型的精确度。利用附件 8 的数据进行模型训练,对附件 9 中的同
学进行预测。并且对全体同学第二三学年的贫困程度进行预测。模型准确度达到
0.76,效果很好。
在解决问题 3 时,我们将附件 4-7 中提取到的新的特征一起纳入模型的指
标体系中,优化我们的XGBoost 模型,使得模型准确率达到了 0.84,提升了 10.53%。
更重要的是,新的模型对贫困等级为 1、2 的学生预测准确度翻了几十倍之多。
在解决问题 4 时,我们利用熵权法对第三学年学生的各个指标赋权重,并进
行综合评价,计算其综合得分。得到每个学生的贫困程度得分后,我们将资助金
额进行线性插值,得到贫困程度在前 80 位的同学的资助金额分配,最终贫困程
度第一的同学分配资助金额 2987 元,排名第 80 的同学分配资助金额 500 元。
总体来看,这种基于大学生餐厅消费数据的隐形资助模型,既体现了大数据
时代的特点,也充分考虑了教育援助的精准性和公平性。同时,它也尊重了学生
的隐私权,真正做到了以人为本,关心每一个学生的需要。因此,这种模型具有
广阔的应用前景,值得我们深入探讨和研究。
关键词:隐形资助 k-means 聚类 XGBoost 综合评价 线性插值
1
一、问题重述
1.1 问题背景
在当前社会中,精准资助的重要性日益凸显。特别是对于高校家庭经济困难
学生,如何准确识别他们并提供有效的援助,是当前高等教育贫困援助工作的关
键问题。这里,我们要探索的是一种新的、具有革命性的隐性资助模型——基于
大学生餐厅消费数据的隐形资助模型。
近年来,大数据技术的发展为社会各行业带来了颠覆性的变化,教育领域也
不例外。大数据能够为我们提供丰富的信息,从而在各种问题的处理中更加精确、
深入。在这个背景下,我们意识到,大学生餐厅的消费数据,也许能够成为揭示
学生经济状况的重要窗口。这些数据反映了学生的日常消费行为,而消费行为往
往与家庭经济状况密切相关。
基于这种观察,我们决定利用大数据技术,通过统计和分析大学生的餐厅消
费数据,建立一个隐性资助模型。该模型将能够根据学生的消费数据,评估其经
济贫困程度,然后精准地给予援助。更重要的是,这种方式的资助,不需要公开
学生的个人信息,也无需进行评比,既能保护家庭经济困难学生的隐私,又能够
更公正、更公平地实施教育援助。
1.2 问题重述
1. 数据处理与群体特征分析: 附件 0 提供了学生的性别信息。附件 1-3 提
供了学生不同学年的日三餐餐厅消费金额数据记录,附件 4-7 提供了部分同学的
饮食种类信息。首先,需要对这些数据进行预处理(如删除不相关数据、缺失值
处理、特征提取等)。然后,基于处理后的数据,建立模型来挖掘不同的代表性
群体,定量分析这些群体在三个学年中的主要消费行为特征变化规律和饮食种类
变化规律。
2. 贫困程度预测: 附件 8 给出了部分同学在第一学年结束后其他方式认定
的贫困程度等级。这个等级是粗粒度的,等级 2 是准确的(可能不全),其他等
级可能存在一些偏差。需要建立数学模型,根据学生的消费行为(附件 1-3 的数
据)预测贫困程度,并补全附件 9。然后,结合第一问的研究结果,预测学生在
2
第二学年和第三学年的贫困程度,并分析相关变化。
3. 改进贫困程度预测模型: 在第二问的基础上,结合附件 4-7 的饮食种类
数据,改进贫困程度预测模型,并比较预测结果的变化。
4. 构建差异化资助额度分配算法: 基于前面对贫困生本质特征的挖掘,构
建一个差异化(细粒度)的资助额度分配算法。以第三学年为例,给出具体的分
配结果。分配对象是附件 4-7 中涉及的同学,资助总金额为 10 万元,资助人员
为 80 名。然后对资助结果的公平性和合理性进行评估。
二、问题分析与模型假设
2.1 问题分析
在开始解题之前,我们首先对数据进行了预处理,以及特征提取。从附近 1-
3 中提取出全体学生三年来的消费特征,从附件 4-7 中提取出部分学生的消费金
额特征及食物种类特征,用于后续的模型构建。
对问题一,我们采用 k-means 算法,对第一学年的学生进行聚类,然后计算
这些群体的三年的消费特征的均值,绘制图表,来体现这些群体三年来的消费特
征变化。
对问题二,我们构建 XGBoost 模型,同时使用交叉验证、启发式算法寻优
来提高模型的精确度。利用附件 8 的数据进行模型训练,对附件 9 中的同学进行
预测。并且对全体同学第二三学年的贫困程度进行预测。
对问题三,我们将附件 4-7 中提取到的新的特征一起纳入模型的指标体系中,
使得模型的预测更加准确。
对问题四,我们利用熵权法对第三学年学生的各个指标赋权重,并进行综合
评价,计算其综合得分。得到每个学生的贫困程度得分后,我们将资助金额进行
线性插值,得到贫困程度在前 80 位的同学的资助金额分配。
2.2 模型假设
⚫ 假设每位同学的餐厅消费记录都是自己本人的真实消费记录,不考虑为
同学带饭、餐卡丢失被盗刷等情况。
⚫ 假设通过熵权法得出的权重能够有效地反映各个特征的重要性。
3
⚫ 假设学生的贫困程度(综合评价得分)和他们应得的资助金额之间存在
线性关系。即学生的贫困程度每增加一个单位,学生应得的资助金额也
会增加一个固定的单位。
⚫ 在应用熵权法时,假设所提起到的各个特征是独立的,即它们之间没有
相关性。
⚫ 我们假设所有学生得到资助的权利是公平的,即他们得到的资助金额应
该基于他们的贫困程度,不考虑其他因素,如学习成绩、行为表现等。
⚫ 假设所提供的数据是完整且准确的。
三、数据预处理及特征提取
3.1 数据预处理
在模型求解之前,为了是模型的预测效果更好,提高模型的准确性。我们首
先对数据进行了剔除
[1]
。
1.在附件 1-3 中,包含了全体学生的三个学年的餐厅消费金额记录,共计 1098
列,包含每日三餐,即共计 366 天。但是我们发现在部分时间段(如寒暑假期间),
有大量数据为 0,只有部分同学存在消费记录,我们认为这种情况可能是假期仅
有部分同学留校,此时的数据 0 值过多,不具有参考价值。
因此,倘若某一天消费为 0 的同学占比高达 90%以上,我们便剔除掉这一
天的数据。我们编写 matlab 代码来实现,最终剔除结果如下。
表 3-1 附件 1-3 的数据剔除
学年
剔除(天)
剩余(天)
第一学年
73
293
第二学年
195
171
第三学年
95
271
其中,我们发现第二学年剔除掉的数据过多,我们考虑这可能是由于疫情延
迟返校导致的。
2.在附件 4-7 中,给除了部分同学的消费金额、消费食物种类,但是消费食
物种类中存在部分缺失值。由于我们在附件 1-3 中已经有了学生的消费金额数据,
显然这里消费的食物种类对我们的分析价值更大。因此我们剔除掉了消费食物种