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