一种基于LightGBM的绩点预测方法与流程

文档序号:16263715发布日期:2018-12-14 21:46阅读:576来源:国知局
一种基于LightGBM的绩点预测方法与流程

本发明属于机器学习领域,特别涉及一种基于lightgbm的绩点预测方法,主要用于对学生绩点进行预测,可用于学籍预警及学生画像。

背景技术

数据挖掘是一门有着悠久历史的学科。它从早期的数据挖掘方法贝叶斯定理(18世纪)和回归分析(19世纪)开始,这些分析主要是识别数据中的模式。近年来,随着信息技术的发展,信息量已经积累到了一个惊人的程度,互联网、物联网、移动互联网等都在疯狂的产生大量数据。高校学生在学习和生活中会产生大量的数据,如成绩数据、消费数据、运动锻炼数据等,但是,在现阶段的大学管理中,每个部分的数据之间不存在关联,只是为了便于查找而保存。本设计通过数据预处理,将现阶段大学管理的数据整合成为可以用于数据挖掘的数据集,再用这些数据进行绩点的预测。

朱全银等人已有的研究基础包括:wanlifeng.researchofthemestatementextractionforchineseliteraturebasedonlexicalchain.internationaljournalofmultimediaandubiquitousengineering,vol.11,no.6(2016),pp.379-388;wanlifeng,yingli,shangbinggao,yunyangyan,jianxunxue.anovelflameedgedetectionalgorithmviaanovelactivecontourmodel.internationaljournalofhybridinformationtechnology,vol.9,no.9(2016),pp.275-282;刘金岭,冯万利.基于属性依赖关系的模式匹配方法[j].微电子学与计算机,2011,28(12):167-170;刘金岭,冯万利,张亚红.初始化簇类中心和重构标度函数的文本聚类[j].计算机应用研究,2011,28(11):4115-4117;刘金岭,冯万利,张亚红.基于重新标度的中文短信文本聚类方法[j].计算机工程与应用,2012,48(21):146-150.;朱全银,潘禄,刘文儒,等.web科技新闻分类抽取算法[j].淮阴工学院学报,2015,24(5):18-24;李翔,朱全银.联合聚类和评分矩阵共享的协同过滤推荐[j].计算机科学与探索,2014,8(6):751-759;quanyinzhu,sunquncao.anovelclassifier-independentfeatureselectionalgorithmforimbalanceddatasets.2009,p:77-82;quanyinzhu,yunyangyan,jinding,jinqian.thecasestudyforpriceextractingofmobilephonesellonline.2011,p:282-285;quanyinzhu,suquncao,peizhou,yunyangyan,hongzhou.integratedpriceforecastbasedondichotomybackfillinganddisturbancefactoralgorithm.internationalreviewoncomputersandsoftware,2011,vol.6(6):1089-1093;朱全银,冯万利等人申请、公开与授权的相关专利:冯万利,邵鹤帅,庄军.一种智能冷藏车状态监测无线网络终端装置:cn203616634u[p].2014;朱全银,胡蓉静,何苏群,周培等.一种基于线性插补与自适应滑动窗口的商品价格预测方法.中国专利:zl201110423015.5,2015.07.01;朱全银,曹苏群,严云洋,胡蓉静等,一种基于二分数据修补与扰乱因子的商品价格预测方法.中国专利:zl201110422274.6,2013.01.02;李翔,朱全银,胡荣林,周泓.一种基于谱聚类的冷链物流配载智能推荐方法.中国专利公开号:cn105654267a,2016.06.08。

决策树:

决策树是一种基本的分类与回归方法。决策树的目的是选择最能够区分样本的特征对样本进行区分。因此,首先要解决的就是如何找到最能够区分样本的特征。目前业界大多数通过使用信息增益或者信息增益比来选择特征。

在信息论中,设x是一个取值有限的离散随机变量,随机变量x的熵定义为:

其中,pi=p(x=xi)。

根据熵计算信息的算法如下。

首先,计算数据集d的经验熵h(d)

然后,计算特征a对数据集d的经验条件熵h(d|a)

最后,计算信息增益

g(d,a)=h(d)-h(d|a)(4)

信息增益比公式为

其中,

在目前常用的决策树算法中,id3选用信息增益作为选择最优特征的标准;c4.5使用信息增益比;cart树则使用gini指数。

随机森林:

决策树有一个比较大的缺陷,当参数选择不够合理的情况下,决策树会出现过拟合的现象。随机森林的投票公式如下:

其中,nc为类别的总个数。因此,就有了随机森林的诞生。随机森林使用多个决策树投票的方式来改善决策树。在产生决策树时,首先对样本进行重采样,选择a个样本,然后在样本的n个特征中随机选择k个特征,然后在a个样本,k个特征的情况下使用cart树来拟合。在得到森林之后,利用这些数进行投票。这种训练多个不同的模型再进行投票的方法叫做bagging。bagging在大数据竞赛中也有广泛的应用,多用于不同模型的集成。

xgboost:

随机森林解决的决策树容易过拟合的问题,但是自身仍然存在一些问题。一方面是随机森林在默写噪音较大的问题上会过拟合,另一方面是如果一个特征划值较多,那么随机森林在这种数据上产生的权值相对不那么可信。

和随机森林不同,xgboost利用的是boosting集成方法。因为被大量用于数据挖掘竞赛且取得很好的结果,所以很受欢迎。和普通的机器学习方法相比,xgboost自身就可以对缺失值进行处理、将特征正则化。xgboost创新性地对代价函数二阶展开来加速优化过程。

lightgbm:

和xgboost相比,lightgbm速度更快,占用的资源更少,而取得的效果则和xgboost差不多。除了这些,lightgbm还支持类型特征的输入,并且在划分数据集时自动支持验证集。

lightgbm是一种新的梯度提升树框架,它具有高效率和可扩展性,可以支持gbdt,gbrt,gbm和mart等多种算法。由于其完全贪婪的树木生长方法和基于直方图的内存和计算优化,lightgbm比现有的梯度增强树实现要快几倍。它还具有基于dmtk框架的分布式培训的完整解决方案。在lightgbm出现后,迅速成为了数据挖掘竞赛选手的常用工具。

在教育数据挖掘角领域,已有论文主要基于学习行为对指定课程成绩进行预测,如利用学生在网课上的学习行为,对网课成绩进行预测,另外使用的方法多为统计方面的回归分析,多为较简单的模型,很少涉及机器学习领域。

传统的教育数据挖掘领域的预测多为成绩预测,更详细地,多为对moocs课程成绩的预测,涉及到的数据也只是与网课直接相关的数据,使用方法也较为简单,不适合直接在高校内使用。



技术实现要素:

发明目的:针对上述存在的问题,本发明提供一种通过收集学生在学校内的各个方面的数据,如成绩数据、消费数据、网络浏览数据、公共服务数据、运动数据等,利用这些数据及randomforest、xgboost和lightgbm算法对学生绩点进行预测的基于lightgbm的绩点预测方法。

技术方案:本发明提出一种基于lightgbm的绩点预测方法,包括如下步骤:

(1)对从教务网、招生就业系统、学生基础信息系统、学生财务系统获取到的数据进行etl处理,进行数据筛选处理后得到学生行为习惯数据集stuhabitv1;

(2)使用xgboost及随机森林对数据集stuhabitv1进行学生绩点的预测,利用这两个算法的互信息对stuhabitv1进行特征选择得到stuhabitv2;

(3)使用bagging对数据集stuhabitv2进行学生绩点的预测,对lightgbm调参以得到最优的模型。

进一步的,所述步骤(1)中得到学生行为习惯数据集stuhabitv1的具体步骤如下:

(1.1)整合从教务网、招生就业系统、学生基础信息系统、学生财务系统获取到的数据,将其导入数据库;

(1.2)定义行为习惯数据集stuhabitv1,其中,stuhabitv1={xkbxk,xkbxk_count,zybxk,zybxk_count,sjbxk,sjbxk_count,tsbxk,tsbxk_count,sjhj,sjhj_count,tsxxk,tsxxk_count,zyxxk,zyxxk_count,xkxxk,xkxxk_count,ggjck,ggjck_count,xkjck,xkjck_count,zyjck,zyjck_count,sjxxk,sjxxk_count,zyfxk,zyfxk_count,tsk,tsk_count,youxiu,lianghao,zhongdeng,jige,bujige,kaoqin,breakfastcoef,lunchcoef,suppercoef,marketcoef,librarycoef,lifecoef,dxj,ydh};

(1.3)从教务网数据库jwdata中抽取所有的成绩数据gradedata并导出;

(1.4)创建grade_init表,更新grade_init里的学年,学期字段,定义学期sessiona和sessionb;

(1.5)更新成绩数据,对gradedata中成绩字段不是数值类型的记录进行预处理,其中,不及格更新为0,及格更新为65,中等更新为75,良好更新为85,优秀更新为95;

(1.6)定义学生sessionb学期的总绩点stugpa,向grade_init表中插入课程学分,课程绩点,课程性质字段;

(1.7)从学生基础信息系统中导出课程信息数据kcxxdata,包括选课课号,课程名称,学分,课程性质,将其导入kcxx_init表,更新grade_init里的学分、绩点字段;

(1.8)对kcxxdata中的异常数据做处理,删除kcxxdata中学分字段为null的样本数据;

(1.9)更新grade_init中绩点及课程性质,发现成绩字段存在一些脏数据如“缓考”、“合格”、“不合格”,清洗这些数据;

(1.10)对绩点数据进行四舍五入处理,并将按公式计算为负数的数据设为0,利用每门课的绩点计算stugpa;

(1.11)找到两个数据都有的人,即在sessiona及sessionb两个学期都有考试成绩数据的人;

(1.12)定义时间域timedomaina,timedomainb,timedomainc,日期域datedomain,定义早餐消费breakfastcoef,根据学生财务系统数据,将在timedomaina之间的消费总数更新至breakfastcoef;

(1.13)定义午餐消费lunchcoef,根据学生财务系统数据,将在timedomainb之间的消费总数更新至lunchcoef;

(1.14)定义晚餐消费suppercoef,根据学生财务系统数据,将在timedomainc之间的消费总数更新至suppercoef;

(1.15)定义超市消费marketcoef,根据学生财务系统数据,将在datedomain期间消费描述为“商场消费”的消费总数更新至marketcoef;

(1.16)定义图书馆消费librarycoef,根据学生财务系统数据,将在datedomain期间消费描述为“图书馆消费”的消费总数更新至librarycoef;

(1.17)定义生活消费lifecoef,根据学生财务系统数据,将在datedomain期间消费描述为“生活消费”的消费总数更新至lifecoef;

(1.18)定义sessiona学期的考勤次数kaoqin,是否获取单项奖dxj,是否运动会获奖ydh,利用学生基础信息系统更新kaoqin,dxj,ydh;

(1.19)定义学科必修课加权平均分xkbxk、学科必修课课程数量xkbxk_count、专业必修课加权平均分zybxk、专业必修课课程数量zybxk_count、实践必修课加权平均分sjbxk、实践必修课课程数量sjbxk_count、通识必修课加权平均分tsbxk、通识必修课课程数量tsbxk_count、实践环节加权平均分sjhj、实践环节课程数量sjhj_count、通识选修课加权平均分tsxxk、通识选修课课程数量tsxxk_count、专业选修课加权平均分zyxxk、专业选修课课程数量zyxxk_count、学科选修课加权平均分xkxxk、学科选修课课程数量xkxxk_count、公共基础课加权平均分ggjck、公共基础课课程数量ggjck_count、学科基础课加权平均分xkjck、学科基础课课程数量xkjck_count、专业基础课加权平均分zyjck、专业基础课课程数量zyjck_count、实践选修课加权平均分sjxxk、实践选修课课程数量sjxxk_count、专业方向课加权平均分zyfxk、专业方向课课程数量zyfxk_count、通识课加权平均分tsk、通识课课程数量tsk_count;

(1.20)获取学生列表,遍历这个列表,以单个学生为单位计算该生在xkbxk、zybxk、sjbxk、tsbxk、sjhj、tsxxk、zyxxk、xkxxk、ggjck、xkjck、zyjck、sjxxk、zyfxk、tsk这14个类型课程上的加权平均分,同时统计该生在相应学期修的对应课程的数量;

(1.21)定义课程成绩为优秀的课程数量youxiu,课程成绩为良好的课程数量lianghao,课程成绩为中等的课程数量中等,课程成绩为及格的课程数量jige,课程成绩为不及格的课程数量bujige,利用教务系统数据对youxiu,lianghao,zhongdeng,jige,bujige进行更新;

(1.22)根据以上流程所得数据更新stuhabitv1中xkbxk,xkbxk_count,zybxk,zybxk_count,sjbxk,sjbxk_count,tsbxk,tsbxk_count,sjhj,sjhj_count,tsxxk,tsxxk_count,zyxxk,zyxxk_count,xkxxk,xkxxk_count,ggjck,ggjck_count,xkjck,xkjck_count,zyjck,zyjck_count,sjxxk,sjxxk_count,zyfxk,zyfxk_count,tsk,tsk_count,youxiu,lianghao,zhongdeng,jige,bujige,kaoqin,breakfastcoef,lunchcoef,suppercoef,marketcoef,librarycoef,lifecoef,dxj,ydh。。

进一步的,所述步骤(2)中使用xgboost及随机森林对数据集stuhabitv1进行学生绩点的预测,利用这两个算法的互信息对stuhabitv1进行特征选择得到stuhabitv2的具体步骤如下:

(2.1)定义特征集合rfdel、xgbdel,定义特征选择后特征集合stuhabitv2,取etl流程中学生行为习惯数据集stuhabitv1,丢弃id,xh,y字段,对其余字段进行正则化处理得到data_scaled;

(2.2)特征xj在整个随机森科中的重要程度为其中,m是模型中树的数量;

(2.3)特征xj在单独一个决策树上的特征重要度为其中,l-1为树中非叶子节点数量,获得特种重要性数组feaimrt;

(2.4)按照7:3的比例随机分配data_scaled为训练集habittrain和测试集habittest,用于预测算法;

(2.5.1)初始化随机森林模型rfgpa,用测试集拟合随机森林模型rfgpa,使用模型rfgpa对测试集habittest进行预测;

(2.5.2)按照特征重要性数组feaimrt,将特征重要性小于0.02的特征放入集合rfdel中,作为特征选择的备用删除集合;

(2.6.1)初始化xgboost模型xgbgpa,用测试集拟合随机森林模型xgbgpa,使用模型xgbgpa对测试集habittest进行预测;

(2.6.2)按照特征重要性数组feaimrt,将特征重要性小于0.02的特征放入集合xgbdel中,作为特征选择的备用删除集合;

(2.7)定义featuredel=efdel∪xgbdel,将featuredel中的特征去除,得到stuhabitv2。

进一步的,所述步骤(3)中对lightgbm调参以得到最优的模型的具体步骤如下:

(3.1)取特征选择流程获取的学生行为习惯数据集stuhabitv2;

(3.2)丢弃id列,对剩余的除了绩点的其他特征进行正则化处理,以7:3的比例划分stuhabitv2,其中,训练集habittrain2占7成,测试集habittest2占3成;

(3.3.1)使用rf拟合traindata,使用网格搜索搜索到最佳的参数,得到模型rfgpa;

(3.3.2)使用模型rfgpa对tetsdata进行测试,根据结果获取决定系数r2rf及均方误差mserf;

(3.3.3)使用模型rfgpa对predictdata进行预测,得到预测结果rfpredict;

(3.4.1)使用lightgbm拟合traindata,使用网格搜索搜索到最佳的参数,得到模型gbmgpa;

(3.4.2)使用模型gbmgpa对tetsdata进行测试,根据结果获取决定系数r2gbm及均方误差msegbm;

(3.4.3)使用模型gbmgpa对predictdata进行预测,得到预测结果gbmpredict;

(3.5.1)使用xgboost拟合traindata,使用网格搜索搜索到最佳的参数,得到xgbgpa;

(3.5.2)使用模型xgbgpa对tetsdata进行测试,根据结果获取决定系数r2xgb及均方误差msexgb;

(3.5.3)使用模型xgbgpa对predictdata进行预测,得到预测结果xgbpredict;

(3.6)定义所有学生绩点预测结果集result,预测结果为rfpredict、gbmpredict、xgbpredict三者对应预测结果的平均值。

本发明采用上述技术方案,具有以下有益效果:

本发明方法利用可以收集到的学生相关的数据,通过etl及特征选择技术提取的行为习惯数据集,再利用lightgbm等算法有效地对学生的绩点进行了预测,具体的:本发明利用成绩数据、消费数据、网络浏览数据、公共服务数据、运动数据等数据通过etl技术得到行为习惯数据集,在通过特征选择对初始的行为习惯数据集的特征进行筛选,得到行为习惯数据集v2,最后再结合lightgbm算法对学生的绩点进行预测,得到有效的学生绩点结果。此外,本发明创造性地对多源数据进行融合建模,将复杂数据转为可用的数据集,将lightgbm用于教育数据挖掘领域,对学生绩点进行预测,提高绩点预测的准确率,更好地服务于高校学籍预警及学生画像系统。

附图说明

图1为本发明整体流程图;

图2为图1中数据预处理的流程图;

图3为图1中特征选择的流程图;

图4为图1中绩点预测的流程图。

具体实施方式

下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

如图1-图4所示,本发明所述的一种基于lightgbm的绩点预测方法,包括如下步骤:

步骤1:对从教务网、招生就业系统、学生基础信息系统、学生财务系统获取到的数据进行etl处理,进行数据筛选处理后得到学生行为习惯数据集stuhabitv1:

步骤1.1:整合从教务网、招生就业系统、学生基础信息系统、学生财务系统获取到的数据,将其导入数据库;

步骤1.2:定义行为习惯数据集stuhabitv1,其中,stuhabitv1={xkbxk,xkbxk_count,zybxk,zybxk_count,sjbxk,sjbxk_count,tsbxk,tsbxk_count,sjhj,sjhj_count,tsxxk,tsxxk_count,zyxxk,zyxxk_count,xkxxk,xkxxk_count,ggjck,ggjck_count,xkjck,xkjck_count,zyjck,zyjck_count,sjxxk,sjxxk_count,zyfxk,zyfxk_count,tsk,tsk_count,youxiu,lianghao,zhongdeng,jige,bujige,kaoqin,breakfastcoef,lunchcoef,suppercoef,marketcoef,librarycoef,lifecoef,dxj,ydh};步骤1.3:从教务网数据库jwdata中抽取所有的成绩数据gradedata并导出;

步骤1.4:创建grade_init表,更新grade_init里的学年,学期字段,定义学期sessiona和sessionb;

步骤1.5:更新成绩数据,对gradedata中成绩字段不是数值类型的记录进行预处理,其中,不及格更新为0,及格更新为65,中等更新为75,良好更新为85,优秀更新为95;

步骤1.6:定义学生sessionb学期的总绩点stugpa,向grade_init表中插入课程学分,课程绩点,课程性质字段;

步骤1.7:从学生基础信息系统中导出课程信息数据kcxxdata,包括选课课号,课程名称,学分,课程性质,将其导入kcxx_init表,更新grade_init里的学分、绩点字段;

步骤1.8:对kcxxdata中的异常数据做处理,删除kcxxdata中学分字段为null的样本数据;

步骤1.9:更新grade_init中绩点及课程性质,发现成绩字段存在一些脏数据如“缓考”、“合格”、“不合格”,清洗这些数据;

步骤1.10:对绩点数据进行四舍五入处理,并将按公式计算为负数的数据设为0,利用每门课的绩点计算stugpa;

步骤1.11:找到两个数据都有的人,即在sessiona及sessionb两个学期都有考试成绩数据的人;

步骤1.12:定义时间域timedomaina,timedomainb,timedomainc,日期域datedomain,定义早餐消费breakfastcoef,根据学生财务系统数据,将在timedomaina之间的消费总数更新至breakfastcoef;

步骤1.13:定义午餐消费lunchcoef,根据学生财务系统数据,将在timedomainb之间的消费总数更新至lunchcoef;

步骤1.14:定义晚餐消费suppercoef,根据学生财务系统数据,将在timedomainc之间的消费总数更新至suppercoef;

步骤1.15:定义超市消费marketcoef,根据学生财务系统数据,将在datedomain期间消费描述为“商场消费”的消费总数更新至marketcoef;

步骤1.16:定义图书馆消费librarycoef,根据学生财务系统数据,将在datedomain期间消费描述为“图书馆消费”的消费总数更新至librarycoef;

步骤1.17:定义生活消费lifecoef,根据学生财务系统数据,将在datedomain期间消费描述为“生活消费”的消费总数更新至lifecoef;

步骤1.18:定义sessiona学期的考勤次数kaoqin,是否获取单项奖dxj,是否运动会获奖ydh,利用学生基础信息系统更新kaoqin,dxj,ydh;

步骤1.19:定义学科必修课加权平均分xkbxk、学科必修课课程数量xkbxk_count、专业必修课加权平均分zybxk、专业必修课课程数量zybxk_count、实践必修课加权平均分sjbxk、实践必修课课程数量sjbxk_count、通识必修课加权平均分tsbxk、通识必修课课程数量tsbxk_count、实践环节加权平均分sjhj、实践环节课程数量sjhj_count、通识选修课加权平均分tsxxk、通识选修课课程数量tsxxk_count、专业选修课加权平均分zyxxk、专业选修课课程数量zyxxk_count、学科选修课加权平均分xkxxk、学科选修课课程数量xkxxk_count、公共基础课加权平均分ggjck、公共基础课课程数量ggjck_count、学科基础课加权平均分xkjck、学科基础课课程数量xkjck_count、专业基础课加权平均分zyjck、专业基础课课程数量zyjck_count、实践选修课加权平均分sjxxk、实践选修课课程数量sjxxk_count、专业方向课加权平均分zyfxk、专业方向课课程数量zyfxk_count、通识课加权平均分tsk、通识课课程数量tsk_count;

步骤1.20:获取学生列表,遍历这个列表,以单个学生为单位计算该生在xkbxk、zybxk、sjbxk、tsbxk、sjhj、tsxxk、zyxxk、xkxxk、ggjck、xkjck、zyjck、sjxxk、zyfxk、tsk这14个类型课程上的加权平均分,同时统计该生在相应学期修的对应课程的数量;

步骤1.21:定义课程成绩为优秀的课程数量youxiu,课程成绩为良好的课程数量lianghao,课程成绩为中等的课程数量中等,课程成绩为及格的课程数量jige,课程成绩为不及格的课程数量bujige,利用教务系统数据对youxiu,lianghao,zhongdeng,jige,bujige进行更新;

步骤1.22:根据以上流程所得数据更新stuhabitv1中xkbxk,xkbxk_count,zybxk,zybxk_count,sjbxk,sjbxk_count,tsbxk,tsbxk_count,sjhj,sjhj_count,tsxxk,tsxxk_count,zyxxk,zyxxk_count,xkxxk,xkxxk_count,ggjck,ggjck_count,xkjck,xkjck_count,zyjck,zyjck_count,sjxxk,sjxxk_count,zyfxk,zyfxk_count,tsk,tsk_count,youxiu,lianghao,zhongdeng,jige,bujige,kaoqin,breakfastcoef,lunchcoef,suppercoef,marketcoef,librarycoef,lifecoef,dxj,ydh。

步骤2:使用xgboost及随机森林对数据集stuhabitv1进行学生绩点的预测,利用这两个算法的互信息对stuhabitv1进行特征选择得到stuhabitv2:

步骤2.1:定义特征集合rfdel、xgbdel,定义特征选择后特征集合stuhabitv2,取etl流程中学生行为习惯数据集stuhabitv1,丢弃id,xh,y字段,对其余字段进行正则化处理得到data_scaled;

步骤2.2:特征xj在整个随机森科中的重要程度为其中,m是模型中树的数量;

步骤2.3:特征xj在单独一个决策树上的特征重要度为其中,l-1为树中非叶子节点数量,获得特种重要性数组feaimrt;

步骤2.4:按照7:3的比例随机分配data_scaled为训练集habittrain和测试集habittest,用于预测算法;

步骤2.5.1:初始化随机森林模型rfgpa,用测试集拟合随机森林模型rfgpa,使用模型rfgpa对测试集habittest进行预测;

步骤2.5.2:按照特征重要性数组feaimrt,将特征重要性小于0.02的特征放入集合rfdel中,作为特征选择的备用删除集合;

步骤2.6.1:初始化xgboost模型xgbgpa,用测试集拟合随机森林模型xgbgpa,使用模型xgbgpa对测试集habittest进行预测;

步骤2.6.2:按照特征重要性数组feaimrt,将特征重要性小于0.02的特征放入集合xgbdel中,作为特征选择的备用删除集合;

步骤2.7:定义featuredel=efdel∪xgbdel,将featuredel中的特征去除,得到stuhabitv2。

步骤3:使用bagging对数据集stuhabitv2进行学生绩点的预测,对lightgbm调参以得到最优的模型:

步骤3.1:取特征选择流程获取的学生行为习惯数据集stuhabitv2;

步骤3.2:丢弃id列,对剩余的除了绩点的其他特征进行正则化处理,以7:3的比例划分stuhabitv2,其中,训练集habittrain2占7成,测试集habittest2占3成;

步骤3.3.1:使用rf拟合traindata,使用网格搜索搜索到最佳的参数,得到模型rfgpa;

步骤3.3.2:使用模型rfgpa对tetsdata进行测试,根据结果获取决定系数r2rf及均方误差mserf;

步骤3.3.3:使用模型rfgpa对predictdata进行预测,得到预测结果rfpredict;

步骤3.4.1:使用lightgbm拟合traindata,使用网格搜索搜索到最佳的参数,得到模型gbmgpa;

步骤3.4.2:使用模型gbmgpa对tetsdata进行测试,根据结果获取决定系数r2gbm及均方误差msegbm;

步骤3.4.3:使用模型gbmgpa对predictdata进行预测,得到预测结果gbmpredict;

步骤3.5.1:使用xgboost拟合traindata,使用网格搜索搜索到最佳的参数,得到xgbgpa;

步骤3.5.2:使用模型xgbgpa对tetsdata进行测试,根据结果获取决定系数r2xgb及均方误差msexgb;

步骤3.5.3:使用模型xgbgpa对predictdata进行预测,得到预测结果xgbpredict;

步骤3.6:定义所有学生绩点预测结果集result,预测结果为rfpredict、gbmpredict、xgbpredict三者对应预测结果的平均值。

使用到的基础数据主要有91905条历史成绩数据、7643条考勤数据、4645条奥兰系统数据、586335条消费数据以及248条运动会获奖数据,根据学生学号对数据进行整合,最终数据集共有3035条,经过特征选择的数据集共有19个特征,在测试集上,多个模型的高校学生绩点预测的预测结果相对真值误差10%内的样本数量占62.4%,多个模型的高校学生绩点预测的预测结果相对真值误差20%内的样本数量占94%。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1