一种实时学业预警方法及系统

文档序号:29625236发布日期:2022-04-13 14:16阅读:268来源:国知局
一种实时学业预警方法及系统

1.本发明涉及数据处理技术领域,尤其涉及一种实时学业预警方法及系统。


背景技术:

2.ai技术和大数据技术的发展促进了智慧教育的快速发展,也改变了传统的教育方式。学业预警是智慧教育的一个重要应用场景,其目的是通过分析学校积累的海量学生学习成绩、学生行为等数据,对学生未来的学业成绩进行预测,识别出成绩异常的学生,以便于提前对这些学生给予针对性的指导。
3.现有的学业预警技术方案主要关注于于预测模型算法的准确性或者学生数据的多样性及完整性,使用方式不灵活,难以满足用户实时调用算法模型获得预测数据的需求,降低了学业预警系统的实用性。


技术实现要素:

4.本发明的目的在于克服现有技术中的不足,提供一种实时学业预警方法及系统。
5.第一方面,本发明提供一种实时学业预警方法,包括:
6.构建学业预警模型;
7.根据学业预警模型,计算每名学生的预测成绩;
8.根据所述每名学生的预测成绩,进行学业预警。
9.进一步的,所述学业预警模型的构建包括以下步骤:
10.获取学生数据,构建训练数据集;
11.利用训练数据集,基于随机森林算法,训练得到学业预警模型。
12.进一步的,所述学生数据包括学习成绩数据库、学生基本信息数据库和学生行为数据库。
13.第二方面,本发明提供一种实时学业预警系统,包括:
14.模型训练子系统,用于根据学生数据,构建学业预警模型;
15.成绩预测子系统,用于根据所述学业预警模型,计算每名学生的预测成绩;
16.预警查询子系统,用于根据所述每名学生的预测成绩,进行学业预警。
17.进一步的,所述模型训练子系统包括数据采集与预处理模块和算法训练模块,所述数据采集与预处理模块用于获取处理学生数据,所述算法训练模块用于训练学业预警模型。
18.进一步的,所述学生数据包括学习成绩数据库、学生基本信息数据库和学生行为数据库。
19.进一步的,所述成绩预测子系统包括文件监控模块和学业数据存储模块,所述文件监控模块根据学业预警模型计算每名学生的预测成绩,所述学业数据存储模块用于存储每名学生的预测成绩。
20.进一步的,所述预警查询子系统包括web客户端模块、web服务器端模块和grpc服
务器模块。
21.与现有技术相比,本发明的有益效果为:本发明通过学业预警模型,提前计算每名学生的预测成绩,需要查询时,可以直接调用查询,提高了学业预警的实时性。
附图说明
22.图1是本发明实施例一种实时学业预警方法工作流程图;
23.图2是本发明实施例一种实时学业预警系统的模型训练子系统工作流程图;
24.图3是本发明实施例一种实时学业预警系统的成绩预测子系统的文件监控模块的工作流程图;
25.图4是本发明实施例一种实时学业预警系统的预警查询子系统工作流程图。
具体实施方式
26.下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
27.实施例1:
28.本发明提供了一种实时学业预警方法,包括:
29.构建学业预警模型,具体内容包括:
30.加载python的threading库模块,启动定时器timer,该定时器周期性地读取学习成绩数据库、学生基本信息数据库和学生日常行为数据库,生成学习成绩表s、学生基本信息表i和学生日常行为数据表b。
31.学习成绩表s可以用{name,no,1g1,

,1gn,2g1,

,2gn,

,kg1,

,kgn}表示,其中name表示学生姓名,no表示学生学号,每个学生对应k个学期,每个学期包括n门课程,kgn表示第k学期的第n课程的成绩,例如1g1表示第1学期的第1门课程的成绩,1g2表示第1学期的第2门课程的成绩,其他成绩字段的含义以此类推。
32.学生基本信息表i可以用{name,no,type,area,eco}表示,其中,type表示招生类型,取值为[对口单招,单独招生,高考招生],area表示学生地域来源,取值为[农村,城市],eco表示学生的经济情况,取值为[非贫困,一般贫困,特别贫困],学生基本信息表i还可以根据需要灵活扩充其字段。
[0033]
学生日常行为数据表b可以用{name,no,b1,b2,

,bn}表示,其中,b1 b1,b2,

,bn分别表示学生各类日常行为数据,比如上网时长、在图书馆学习的时长等,学生日常行为数据表b还可以根据需要灵活扩充其字段。
[0034]
加载python的pandas库分别将学习成绩表s、学生基本信息表i和学生行为数据表b的数据转换为dataframe结构,分别记为dfs、dfi和dfb。
[0035]
dfs的数据可表示如下:
[0036]
nameno1g1

1gn2g1

2gn

kg1

kgn
………………………………………………………………
[0037]
dfi的数据可表示如下:
[0038]
namenotypeareaeco
…………………………
[0039]
dfb的数据可表示如下:
[0040]
namenob1b2

bn
………………………………
[0041]
遍历dfi的每一条记录,对每一条记录的[type,area,eco]字段的数据使用提前预设好的对应关系map将字符型的数据转换为数值型的数据,对应关系map为一个哈希表,可以表示为[《“对口单招”,1》,《“单独招生”,2》,《“高考招生”,3》,《“农村”,4》,《“城市”,5》,《“非贫困”,6》,《“一般贫困”,7》,《“特别贫困”,8》]。
[0042]
对应关系map可以按json(javascript object notation)格式保存到指定的文件中,该文件的内容可以表示为{{“对口单招”,1},{“单独招生”,2},{“高考招生”,3},{“农村”,4},{“城市”,5},{“非贫困”,6},{“一般贫困”,7},{“特别贫困”,8}}。
[0043]
通过python的json模块加载json文件,并将其转换为对应关系map。
[0044]
调用pandas库的concat函数将dfs、dfi和dfb合并为宽表dfall,宽表dfall为dataframe结构,其数据可以表示如下:
[0045]
nameno1g1

1gn2g1

2gn

kg1

kgntypeareaecob1b2

bn
……………………………………………………………………………………………………
[0046]
调用pandas库将dfall的数据转换为csv格式,并保存到csv原始数据集中,csv原始数据集的字段包括{name,no,1g1,1g2,1gn,2g1,2g2,

,2gn,

,kg1,kg2,

,kgn,type,area,eco,b1,b2,

,bn}。
[0047]
加载python的threading库模块,启动定时器timer,该定时器周期性地调用pandas库读取csv原始数据集,并将其转换为宽表dfall。
[0048]
调用pandas库提取宽表dfall中的所有学期的成绩数据,这些学期的数据组成集合xueqi,xueqi包含n个学期,可以表示为{s1,s2,

,sn},其中,元素s1表示第1学期的所有课程的成绩[1g1,1g2,

,1gn],元素s2表示第2学期的所有课程的成绩[2g1,2g2,

,2gn],集合xueqi中的其他元素的含义以此类推。
[0049]
加载sklearn库,创建随机森林算法randomforestregressor的实例rfr,并设置实例rfr相关的n_estimators、max_depth,min_samples_leaf和max_leaf_nodes等参数。
[0050]
遍历集合xueqi,对集合xueqi的每一个元素sk(k=1

n),分别调用实例rfr的拟合函数fit(dfall,sk)生成regressor模型regressor_k(k=1

n)。
[0051]
加载python的pickle库,调用的pickle库的dump函数分别将成regressor模型rk k=1

n)保存到学业预警模型文件model_k(k=1

n),每个学业预警模型文件model_k与学期k(k=1

n)一一对应。
[0052]
实时计算每一个学生未来所有学期的所有学科成绩,并将这些成绩保存到学业数据库中,需要时,能够直接调用。
[0053]
实施例2:
[0054]
本发明还提供了一种实时学业预警系统,包括模型训练子系统、成绩预测子系统
和预警查询子系统。
[0055]
模型训练子系统用于根据学生数据构建学业预警模型,模型训练子系统包括数据采集与预处理模块和算法训练模块,。
[0056]
数据采集与预处理模块周期性地读取学习成绩数据库、学生基本信息数据库和学生行为数据库,生成学习成绩表s、学生基本信息表i和学生日常行为数据表b。
[0057]
数据采集与预处理模块对学生基本信息表i的数据进行预处理,根据提前预设好的对应关系map将字符型的数据转换为数值型的数据,对应关系map使用哈希表管理数据,对应关系map可以表示为[《“对口单招”,1》,《“单独招生”,2》,《“高考招生”,3》,《“农村”,4》,《“城市”,5》,《“非贫困”,6》,《“一般贫困”,7》,《“特别贫困”,8》]。
[0058]
学生基本信息表i的初始数据举例如下:
[0059]
namenotypeareaeco张三10单独招生农村非贫困
[0060]
学生基本信息表i通过对应关系map处理后的数据如下:
[0061]
namenotypeareaeco张三10246
[0062]
数据采集与预处理模块将学习成绩表s、学生基本信息表i和学生日常行为数据表b保存为csv原始数据集,csv原始数据集的字段名包括{name,no,1g1,

,1gn,2g1,

,2gn,

,kg1,

,kgn,type,area,eco,b1,b2,

,bn}。
[0063]
算法训练模块读取csv原始数据集,使用随机森林算法randomforest对数据集进行训练,生成学业预警模型model。
[0064]
成绩预测子系统负责实时计算每一个学生未来所有学期的所有学科成绩,并将这些成绩保存到学业数据库中,成绩预测子系统包括文件监控模块和学业数据存储模块。
[0065]
文件监控模块通过pyinotify库监控模型训练子系统的学业预警模型文件model_k(k=1

n),当感知到学业预警模型文件文件model_k(k=1

n)变化后,成绩预测子系统加载python的pandas库,通过pandas库的load方法读取csv原始集的数据到dataframe结构中,然后通过学号n检索dataframe获得每一个学生的学业成绩ss、基本信息si和行为数据sb。
[0066]
成绩预测子系统创建input数据集,input数据集为dataframe结构,分别调用pandas库的concat方法将每个学生的学业成绩ss、基本信息si、行为数据sb合并成为宽表dfall。
[0067]
成绩预测子系统加载python的pickle模块,调用pickle模块的load函数加载每一个学期的学业预警模型文件model_x,将model_x转换为randomforestregressor的实例rfr。
[0068]
成绩预测子系统调用randomforestregressor的实例rfr的函数predict(dfall)预测每个学生所有学期的所有课程成绩futurescore,futurescore可以用{score11,score12,

,score1n,score21,score22,

,score2n,

,scorem1,scorem2,

,scoremn}表示,其中scoreij(i《=m并且j《=n)表示未来第i学期第k门课程的成绩。
[0069]
成绩预测子系统向学业数据存储模块发起连接,将将每一个学生的futurescore保存到学业数据存储模块的学业数据库中。
[0070]
预警查询子系统包括web客户端模块、web服务器端模块和grpc服务器模块,预警查询子系统运行具体流程如下:
[0071]
步骤1web客户端模块向web服器模块发起restful请求,该请求可以表示为r{学号n,待预测学期x};
[0072]
步骤2web服务器模块收到restful请求后,将r{学号n,待预测学期x}封装为protocol buffer消息体,然后创建grpc通道对象channel,通过channel向grpc服务器模块发起rpc请求,建立rpc通道;
[0073]
步骤3web服务器模块将protocol buffer消息体封装为grpc请求,通过rpc通道发送grpc请求到grpc服务器模块;
[0074]
步骤4grpc服务器模块加载python的grpc模块,调用函数server()在指定端口监听客户端的发起的grpc请求;
[0075]
步骤5grpc服务器模块收到web服务器模块发送的grpc请求g{学号n,待预测学期x},解析出学号n和待预测学期x,然后将学号n和待预测学期x封装为学业预测请求,学业预测请求可以表示为p{学号n,待预测学期x};
[0076]
步骤6grpc服务器模块向学业数据库发送学业预测请求p{学号n,待预测学期x}。学业数据库根据学号n检索futurescore,获得对应的x学期的所有课程成绩,记为ax;
[0077]
步骤7grpc服务器模块将ax组装到学业预测应答消息g-ack{ax},然后将g-ack{ax}消息返回到web服务器模块;
[0078]
步骤8web服务器模块将g-ack{ax}消息转换为restful应答消息,该消息可以表示为r-ack{ax},然后将该消息返回到web客户端模块,由web客户端模块显示在界面上。
[0079]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0080]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0081]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0082]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0083]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1