單春宇,張怡文,張 婷,吉宇潔,褚 俊,董云春①
(1.安徽建筑大學(xué) 電子與信息工程學(xué)院,安徽 合肥 230601;2.安徽新華學(xué)院 信息工程學(xué)院,安徽 合肥 230088;3.安徽建筑大學(xué) 數(shù)理學(xué)院,安徽 合肥 230601)
教育數(shù)據(jù)挖掘[1]是目前教育領(lǐng)域[2]的研究熱點(diǎn),教育數(shù)據(jù)挖掘能夠?qū)⒋罅苛闵⒌慕逃龜?shù)據(jù)轉(zhuǎn)變成對(duì)教學(xué)過程更有意義的信息,通過教育類的數(shù)據(jù)挖掘技術(shù)[3-5]老師可以了解班級(jí)同學(xué)現(xiàn)階段的學(xué)習(xí)情況及時(shí)地調(diào)整教學(xué)計(jì)劃,分析學(xué)生的學(xué)習(xí)行為和學(xué)習(xí)動(dòng)機(jī),因材施教.學(xué)生學(xué)業(yè)成績(jī)預(yù)測(cè)[6]是目前教育數(shù)據(jù)挖掘的一個(gè)熱點(diǎn)話題.
由于高校學(xué)生人數(shù)的不斷增加,老師不能及時(shí)了解學(xué)生的最新學(xué)習(xí)情況,可能導(dǎo)致學(xué)生學(xué)業(yè)質(zhì)量得不到保證,達(dá)不到畢業(yè)要求.學(xué)生成績(jī)是衡量學(xué)業(yè)質(zhì)量的重要指標(biāo)之一,因此,對(duì)學(xué)生的成績(jī)進(jìn)行預(yù)測(cè)是目前教育領(lǐng)域的重要研究方向.
目前已有相關(guān)研究者對(duì)學(xué)生學(xué)業(yè)成績(jī)預(yù)警進(jìn)行研究,如2018年河北師范大學(xué)暴延敏[7]使用支持向量機(jī)將學(xué)生的個(gè)人信息、學(xué)習(xí)成績(jī)數(shù)據(jù)、生活作息規(guī)律以及行動(dòng)軌跡構(gòu)成學(xué)生成績(jī)預(yù)測(cè)模型,預(yù)測(cè)學(xué)生的學(xué)業(yè)成績(jī),對(duì)掛科的學(xué)生做出及時(shí)的預(yù)警.2019年西安理工大學(xué)吳蓓[8]使用改進(jìn)的C4.5決策樹算法來構(gòu)建期末成績(jī)預(yù)測(cè)模型,結(jié)果表明,預(yù)測(cè)成績(jī)是否及格的準(zhǔn)確率達(dá)到92.49%.2021年山東大學(xué)宗鑒[9]使用深度卷積、行式卷積、列式卷積和注意力機(jī)制對(duì)學(xué)生的校園卡數(shù)據(jù)記錄構(gòu)建模型,來對(duì)學(xué)生成績(jī)預(yù)測(cè),結(jié)果表明,該方法對(duì)學(xué)生特征表示有較強(qiáng)的學(xué)習(xí)能力,能夠準(zhǔn)確地識(shí)別出學(xué)業(yè)落后的學(xué)生.
在本文中,使用協(xié)同過濾的方法結(jié)合時(shí)間序列對(duì)學(xué)生的課程成績(jī)進(jìn)行預(yù)測(cè),即把學(xué)生學(xué)業(yè)成績(jī)預(yù)測(cè)問題類比成推薦系統(tǒng)[10-11]的用戶評(píng)價(jià)問題,把學(xué)生類比成用戶,學(xué)生成績(jī)類比成商品的評(píng)分,再按照時(shí)間序列對(duì)學(xué)生每學(xué)期的成績(jī)進(jìn)行預(yù)測(cè).實(shí)驗(yàn)結(jié)果表明,通過融合時(shí)間序列和協(xié)同過濾的方法對(duì)學(xué)生成績(jī)進(jìn)行預(yù)測(cè)的RMSE(Root Mean Squared Error)、MAE(Mean Absolute Error)誤差有所降低.
協(xié)同過濾[12]方法可以幫助用戶從海量的數(shù)據(jù)中挖掘出有用的信息,為用戶進(jìn)行個(gè)性化推薦[13-14],目前被廣泛地應(yīng)用在電商、電影、音樂、社交網(wǎng)絡(luò)[15]等領(lǐng)域.算法采用用戶歷史評(píng)分?jǐn)?shù)據(jù),計(jì)算用戶之間的相似度,根據(jù)相似度找到與目標(biāo)用戶Q最相似的N個(gè)用戶,通過最相似的N個(gè)用戶來評(píng)估目標(biāo)用戶Q沒有評(píng)分項(xiàng)目的數(shù)據(jù)值,從而判斷是否為用戶進(jìn)行推薦.
類似的,建立協(xié)同過濾成績(jī)預(yù)測(cè)方法,以預(yù)測(cè)學(xué)生stu1的“C++程序設(shè)計(jì)”課程成績(jī)?yōu)槔?首先,用所有學(xué)生的歷史成績(jī)記錄來計(jì)算學(xué)生之間的相似度;其次,通過學(xué)生相似度找到和學(xué)生stu1最相似的前N個(gè)學(xué)生;最后,通過相似的N個(gè)學(xué)生的“C++程序設(shè)計(jì)”課程成績(jī)來預(yù)測(cè)學(xué)生stu1的“C++程序設(shè)計(jì)”課程成績(jī),具體過程如圖1所示.
圖1 協(xié)同過濾方法成績(jī)預(yù)測(cè)
其中,學(xué)生之間的相似度是使用余弦,皮爾森等方法來計(jì)算.
由于課程之間具有較強(qiáng)的時(shí)間序列特征,學(xué)生對(duì)課程的興趣也會(huì)隨著時(shí)間的推移產(chǎn)生動(dòng)態(tài)變化.傳統(tǒng)的協(xié)同過濾方法無法解決時(shí)間序列的問題,從而導(dǎo)致預(yù)測(cè)成績(jī)準(zhǔn)確率降低.因此,本文提出一種融合時(shí)間序列的協(xié)同過濾方法進(jìn)行學(xué)生成績(jī)預(yù)測(cè),即使用學(xué)生的第1學(xué)期課程成績(jī)結(jié)合協(xié)同過濾方法來預(yù)測(cè)第2學(xué)期的課程成績(jī);再使用第1、2學(xué)期的成績(jī)來預(yù)測(cè)第3學(xué)期的成績(jī);以此類推,再用第1、2、3、4、5、6學(xué)期成績(jī)來預(yù)測(cè)第7學(xué)期的成績(jī),最終得到學(xué)生受時(shí)間因素變化的課程成績(jī).融合時(shí)間序列的協(xié)同過濾方法對(duì)學(xué)生成績(jī)預(yù)測(cè)的流程如圖2所示.
圖2中,d表示第幾學(xué)期,H表示學(xué)期總數(shù)目,Zd表示第d學(xué)期的成績(jī).
圖2 融合時(shí)間序列的協(xié)同過濾方法流程圖
1.2.1 學(xué)生之間的相似度計(jì)算
學(xué)生之間的相似度計(jì)算是預(yù)測(cè)學(xué)生成績(jī)不可少的一個(gè)環(huán)節(jié),本文采用基于用戶的相似度方法.假設(shè)給定的數(shù)據(jù)集由m個(gè)用戶n個(gè)項(xiàng)目組成,則用戶的評(píng)分矩陣如式(1)所示.式(1)中,C={C1,C2,…,Cm}表示用戶的集合,T={T1,T2,…,Tn}表示項(xiàng)目的集合,Rc1,1表示用戶C1對(duì)項(xiàng)目T1的評(píng)分,該評(píng)分反應(yīng)用戶對(duì)當(dāng)前項(xiàng)目的喜愛程度.在推薦系統(tǒng)中計(jì)算2個(gè)用戶之間的相似度,通常使用余弦相似度和皮爾相似度來計(jì)算.
其中,皮爾相似度的取值范圍為[-1,1],它反映2個(gè)評(píng)分向量之間的相關(guān)度,當(dāng)取值為-1的時(shí)候,表示2個(gè)用戶評(píng)分向量負(fù)相關(guān);當(dāng)取值為0的時(shí)候,表示2個(gè)用戶不相關(guān);當(dāng)取值為1的時(shí)候表示2個(gè)向量正相關(guān),計(jì)算方法如式(2)所示:
式中:P(Ci,Cj)代表用戶Ci和用戶Cj的共同評(píng)分皮爾相似度,表示用戶Ci的平均評(píng)分,表示用戶Cj的平均評(píng)分,k∈Ti,j表示用戶Ci和用戶Cj共同的項(xiàng)目.最終得到的用戶相似度矩陣如式(3)所示:
其中YC1,C2表示用戶C1和用戶C2的相似度,1表示用戶與自己本身的相似度值.
1.2.2 成績(jī)預(yù)測(cè)
根據(jù)余弦、皮爾森等方法來計(jì)算所有學(xué)生的相似度值[16],再把得到的相似度值從大到小進(jìn)行排序,選取和當(dāng)前學(xué)生最相似的前N個(gè)學(xué)生作為和當(dāng)前學(xué)生最相似的學(xué)生集合,最后計(jì)算當(dāng)前學(xué)生的目標(biāo)課程的成績(jī).如式(4)所示:
RCi,k表示預(yù)測(cè)學(xué)生Ci課程k的成績(jī),表示學(xué)生Ci的平均成績(jī),UN表示選取和學(xué)生Ci最相似的前N個(gè)學(xué)生的集合表示N個(gè)學(xué)生相似度值的和.
本次實(shí)驗(yàn)設(shè)計(jì)方案分為兩個(gè)部分,第一部分為傳統(tǒng)的協(xié)同過濾成績(jī)預(yù)測(cè)(Collaborative Filtering Grade Prediction,記為CF-G-P),第二部分為融合時(shí)間序列的協(xié)同過濾成績(jī)預(yù)測(cè)(Based On Time Of Collaborative Filtering Grade Prediction,記為Based-T-CF-G-P).具體如下:
Step1學(xué)生成績(jī)數(shù)據(jù)劃分訓(xùn)練集和測(cè)試集.
Step2計(jì)算基于學(xué)生的相似度矩陣.使用余弦和皮爾相似度計(jì)算基于學(xué)生的相似度.
Step3成績(jī)預(yù)測(cè).找出和當(dāng)前學(xué)生最相似的前N個(gè)學(xué)生,然后使用式(4)預(yù)測(cè)當(dāng)前學(xué)生的下一學(xué)期的所有課程成績(jī),然后依次預(yù)測(cè)所有學(xué)生的下一學(xué)期課程成績(jī).
Step4重復(fù)步驟Step1、2、3,直到2~7學(xué)期課程成績(jī)都被預(yù)測(cè)完成.
Step5確定最相似的N個(gè)學(xué)生的取值.N范圍從1~40進(jìn)行迭代,重復(fù)步驟Step1、2、3、4的過程,然后選取最優(yōu)的N的值.
Step6然后將融合時(shí)間序列的協(xié)同過濾和基于協(xié)同過濾的實(shí)驗(yàn)進(jìn)行對(duì)比.
本文使用的數(shù)據(jù)來自安徽新華學(xué)院信息工程學(xué)院15、16、17級(jí)軟件工程專業(yè)的學(xué)生成績(jī),這3個(gè)年級(jí)的學(xué)生培養(yǎng)方案相同.該數(shù)據(jù)包含學(xué)生大學(xué)四年的基礎(chǔ)課、專業(yè)課和選修課成績(jī)記錄,第8學(xué)期為實(shí)習(xí)和論文答辯成績(jī),只選取1到7學(xué)期的學(xué)生成績(jī)進(jìn)行實(shí)驗(yàn).學(xué)生成績(jī)記錄經(jīng)過處理后一共有382個(gè)學(xué)生,50門課程,19 100條成績(jī)記錄.數(shù)據(jù)的預(yù)處理主要包含以下幾個(gè)步驟.
Step1去除學(xué)生的體育課和選修課程.因?yàn)槊總€(gè)班的學(xué)生可能只有幾個(gè)人上過該門課程,所以構(gòu)成的數(shù)據(jù)比較稀疏,直接去除掉.
Step2缺失值或者多值處理.某門課程沒有分?jǐn)?shù),使用平均成績(jī)來填充該缺失值.一個(gè)學(xué)生同一門課程有2個(gè)成績(jī)記錄,以第1次考試成績(jī)?yōu)闇?zhǔn).
Step3等級(jí)劃分.由于學(xué)生的成績(jī)數(shù)據(jù)包含具體的成績(jī)分值和成績(jī)?cè)u(píng)分等級(jí)制度,因此需要進(jìn)行統(tǒng)一的量化,才能方便后期的計(jì)算.本文主要采用5分制度,90≤S<100之間為5分,80≤S<90之間為4分,70≤S<80之間為3分,60≤S<70之間為2分,0≤S<60之間為1分;優(yōu)秀為5分,良好為4分,中等為3分,及格為2分,不及格為1分.
Step4數(shù)據(jù)的合并.將每個(gè)學(xué)生的7學(xué)期的成績(jī)進(jìn)行合并為一條記錄,然后將15、16、17級(jí)的所有學(xué)生成績(jī)記錄合并成一張大表.
本次實(shí)驗(yàn)的評(píng)價(jià)指標(biāo)用RMSE、MAE進(jìn)行衡量的,它們的取值范圍為[0,+∞],當(dāng)誤差值和真實(shí)值相吻合取值為0,反之誤差越大RMSE、MAE取值就越大.RMSE的值簡(jiǎn)稱為R,如式(5)所示:
式中:R表示預(yù)測(cè)成績(jī)的均方根誤差,Sg表示當(dāng)前課程g的真實(shí)成績(jī),表示當(dāng)前課程g的預(yù)測(cè)成績(jī),f表示預(yù)測(cè)學(xué)生stu1的f門課程數(shù)目.
MAE的值簡(jiǎn)稱為M,具體如式(6)所示:
本文實(shí)驗(yàn)共分為2組進(jìn)行的,第1組:將余弦和皮爾森算法進(jìn)行對(duì)比,選取最優(yōu)的算法來計(jì)算學(xué)生的相似度值;第2組:根據(jù)第1組最優(yōu)的值,使用基于協(xié)同過濾和基于時(shí)間序列的協(xié)同過濾方法來預(yù)測(cè)每學(xué)期的成績(jī)進(jìn)行對(duì)比.具體實(shí)驗(yàn)結(jié)果如下.
(1)融合時(shí)間序列和協(xié)同過濾的學(xué)生成績(jī)預(yù)測(cè)方法,當(dāng)N取不同的值時(shí)候,計(jì)算得到的RMSE、MAE效果如圖3、4所示:
圖3 CF-RMSE
圖4 CF-MAE
由圖3、4可以看出,皮爾相似的計(jì)算結(jié)果比余弦相似度的計(jì)算效果要好,當(dāng)最相似的學(xué)生N的取值范圍為23、24、30的誤差較小.
(2)當(dāng)N的取值為30的時(shí)候,基于協(xié)同過濾和基于時(shí)間序列的協(xié)同過濾方法來預(yù)測(cè)的每學(xué)期整體課程的RMSE、MAE如圖5、6所示:
圖5 按學(xué)期預(yù)測(cè)成績(jī)的均方根誤差RMSE
圖6 按學(xué)期預(yù)測(cè)成績(jī)的均方根誤差MAE
從圖5~6可以看出,在第2~6學(xué)期基于時(shí)間序列的協(xié)同過濾預(yù)測(cè)的均方根誤差比基于協(xié)同過濾均方根誤差低,只有在第7學(xué)期的時(shí)候重合.可能是因?yàn)殡S著課程數(shù)目的增加它們兩個(gè)之間的誤差變小.總體來看基于時(shí)間序列的協(xié)同過濾要比基于協(xié)同過濾來預(yù)測(cè)學(xué)生的課程成績(jī)效果好.
本文使用融合時(shí)間序列的協(xié)同過濾方法,來對(duì)安徽新華學(xué)院信息工程學(xué)院的15、16、17級(jí)軟件工程專業(yè)的學(xué)生成績(jī)進(jìn)行預(yù)測(cè).通過計(jì)算發(fā)現(xiàn)最近鄰學(xué)生N的取值為23,24,30效果較好,當(dāng)N為30的時(shí)候,可以發(fā)現(xiàn)融合時(shí)間序列的協(xié)同過濾計(jì)算的誤差要比隨機(jī)抽取的協(xié)同過濾方法來預(yù)測(cè)學(xué)生成績(jī)效果好.但是由于本文使用的實(shí)驗(yàn)數(shù)據(jù)較小做出的實(shí)驗(yàn)還是不太理想,下一步通過增加學(xué)生的成績(jī)數(shù)據(jù),使用基于課程的相似度和基于知識(shí)圖譜的方法來預(yù)測(cè)學(xué)生成績(jī).