靳現凱 宋 威
(北方工業大學信息學院,100144,北京)
近年來,大數據引領的風潮不斷向各大領域推進,大量數據資源的背后隱藏著各種重要信息。在教育領域中,成績是教學改進中最為顯著的指標之一,如何利用科學的方法對這些成績數據進行挖掘與分析,從而不斷革新學生的學習模式、教師的教學模式以及提高學校教育教學質量,是當下廣大教育工作者們重點關注的問題。
由于國家對教育信息化建設的大力支持,國內大多數高校都建立了教務管理系統,其中存儲了大量的數據,包括學生個人信息、在校期間所有課程成績、英語四六級成績等。然而,一方面,目前大部分高校的成績系統仍停留在查詢成績、統計各分數段學生人數、統計成績均值、方差等,除了這些信息,還有很多不易察覺的信息被湮沒在龐大的數據之中。另一方面,由于影響成績因素眾多,不僅包括課程間的關聯性,還包括學生、教師自身個性化因素,致使某些高校盡管人為分析預測成績,但準確率也不高。
國外對于數據挖掘的研究起步較早,大概在1960年代就開始了相關研究。本文討論的基于數據挖掘算法的學生成績管理這一方向也是國外研究的熱點。數據挖掘中很多經典算法例如關聯規則、邏輯回歸和決策樹算法等均已應用于國外各大高校的教學管理研究中,比如預測大學入學比例、預測學生畢業狀況、學生選課推薦等。
在學生成績分析預測的研究方向上,美國哈佛大學的研究人員Jody Clarke與Chris Daye為了評估學生學習效果,利用數據挖掘技術分析與研究了學習行為相關的海量數據。Alsalman Y S等人利用決策樹和人工神經網絡來預測學生的GPA[1],盡管模型表現不錯,但是該算法利用的數據為調查問卷數據,具有一定的主觀性。Adekitan等人構建了一個包含六種數據挖掘模型的Konstanz信息系統,系統使用五年制本科生前三年的課程成績預測后兩年的變化以及順利畢業的可能性大小。[2]近年來,這些結合數據挖掘方法的教育數據研究的影響力在不斷擴大,從中得到的結論也有助于高校完善學校的課程設置。[3]
國內方面,葉俊民等人提出了一種短文本情感增強的成績預測方法,基于學習狀態預測學習者的成績。[4]宋丹等人利用教學過程中產生的多源數據進行采集與分析,探究學生的學習狀態與學習效果,進而預測學生的課程學習狀況。[5]李夢瑩等人考慮學生個體的差異性,如結合學生的家庭環境、學習條件以及個人表現等多種因素,提出一種基于雙路注意力機制的學生成績預測模型。[6]陳佳明等人針對大學基礎課的特點,從主客觀兩方面選擇特征,構建加權投票集成算法對學生成績進行預測。[7]
國內目前在學生成績分析研究方向上的欠缺,主要是由兩方面造成的。一方面,盡管國內的學生成績應用研究也在逐漸起步,但比起國外的應用研究,國內還是更注重于理論的研究,因而盡管有大量的理論支持,實現上還是有一定的困難,但這方面的欠缺只能通過不斷發展應用研究來彌補,短時間內無法攻克。另一方面,影響學生成績的因素眾多,不僅包括課程間的關聯性,還包含學生、教師自身等個性化因素,因此即便某些高校采用了大數據分析方法也無法達到成績預測應有的準確度,這方面的欠缺則可以通過融合決策樹算法和關聯規則算法,使用深度神經網絡(DNN)構建學生成績預測模型來實現對大學生學業指導的科學性和準確度。
本文所使用的數據集來源于北京市某高校電子信息類專業學生成績,經過清洗后,共選取2011—2015級1 542位同學的成績數據作為數據集。該數據集由學生信息表、成績表、課程信息表構成,其中學生信息表包含了學生的基本信息,包括姓名、性別、生源地等;成績表即為學生在校學習期間所有課程成績,包括課程編碼、平時成績、考試成績和總評等;課程信息表對應了課程的細節信息,包括課程編碼、課程名稱和課程內容等。因此,本文所需的數據需要按照學生的學號信息從幾個不同表中進行聯表查詢,從而得到每個學生四個學年的所有課程成績記錄。因為課程分為選修課程和必修課程,而每個學生的選修課程基本上都不一樣,而該校只使用必修課程作為成績績點計算,所以本文只使用學生的必修課程數據。清洗過后的數據集總共包含了1 542位同學的81 726條成績記錄,數據包含信息有:學號、課程名稱、課程成績、課程學期。
為了提供適應該神經網絡的數據集,需要精準的數據預處理步驟,本文預處理的詳細流程為:
1)數據集成。數據集成是指圍繞學生成績主題,匯集來自多個不同數據源的數據。本文中的學生成績數據由學生信息表、成績表、課程信息表三表聯合,集成能夠用來進行挖掘的數據。
2)數據清洗。數據清洗是指對原始數據進行篩選檢查,包括檢查數據一致性,處理殘缺數據、錯誤數據、重復數據。由于本次采集的數據來源于本校教務中心,缺失、錯誤和重復數據很少,因而數據清洗工作量不大。
3)數據約簡。數據約簡是指在不影響最終的數據挖掘結果的前提下,縮小所挖掘數據的規模。舉例來說,原始數據中包括軍訓這一項數據,但這與學生學術成績分析沒有關聯,像這種類型的數據就是數據約簡的對象。
4)數據轉換。本文兩個模型中,第一部分中使用的Apriori算法是bool類型的算法,而學生成績卻是連續型參數,因此本文考慮將課程成績轉換為離散數據形式,即bool類型數據(0、1形式)。具體方法為,首先求出課程的平均成績,若大于該課程平均成績則離散化為 1,若小于該課程平均成績則離散化為0,這種離散化的方式考慮到了各個課程評判標準不一致的問題。后面采用的C4.5算法無法處理連續型數據,而課程分數卻是連續型的參數,因此本論文需要對課程分數進行一般的離散化,成績分組分為A≥90,90>B≥80,80>C≥70,70>D≥60,E<60這五個檔。在對所有數據進行轉換后,本文按照績點計算方法計算了每一個學生的平均績點。
5)訓練數據劃分與處理。經過清洗的數據被按照8∶1∶1的比例隨機劃分為訓練集、驗證集和測試集,其中訓練集的樣本量為65 380,驗證集和測試集的樣本量均為8 173。訓練集用于DNN模型的訓練,驗證集用于每次迭代后的模型泛化能力檢驗,起到防止過擬合的作用。構建模型前需要對數據做進一步的處理,按照上一步中將成績分成A、B、C、D類別后,還需對其進行one-hot編碼如表1,然后才能輸入給神經網絡。

表1 課程成績標記分層One-Hot編碼
目前,大部分學生成績數據挖掘的研究是基于關聯規則算法和決策樹算法展開的。盡管關聯規則能夠挖掘出課程之間的關聯性,但是卻沒有考慮學生、教師自身等個性化因素對學生成績造成的影響,因此關聯規則得到的結果通常在個體分析時有失偏頗。而決策樹算法雖然能夠實現個體學生成績的預測,但是由于沒有考慮到個體學生的課程間的關聯性,所以單獨用決策樹算法得到的預測結果準確度也相對較低。
綜上,本文提出一種高效的關聯規則和決策樹組合算法,綜合考慮學生課程間的關聯性和學生、教師自身個性化因素,提高學生成績分析結果的準確性。
該組合算法設計思路是利用關聯規則生成高可信度的強關聯規則作為新屬性,然后通過對新屬性的判別后,最終得到新的屬性與原有屬性合并來構造決策樹。其中,數據挖掘實施流程為“數據采集-數據預處理-數據挖掘-結果分析-知識使用”。本文采用關聯規則的經典算法——Apriori算法和決策樹算法的典型算法——C4.5算法,該算法可融合成如圖1所示模型。常見決策樹算法包括了ID3算法、C4.5算法、CHAID算法、CART算法等,其中CHAID算法只能處理類別型的輸入變量,CART算法只能進行二部分叉,都不適合本文所需要的數據場景。C4.5算法是在ID3算法的基礎上將分類標準改成信息增益率改進而成的,可以處理數據不完整和連續型屬性(通過離散化)的數據集,而且建模快,分類正確率比較高,故本文采用C4.5算法。

圖1 基于C4.5算法的成績分析模型
由圖1可以看出,Apriori算法得出的強關聯規則只要符合規則前件課程學期小于規則后件課程學期,即可生成新屬性,并與原有屬性合并生成決策樹。該組合算法思想如下:
1)通過Apriori算法挖掘學生成績數據內隱藏的關聯規則,再選取其中的強關聯規則,即支持度、置信度都大于等于最小支持度、最小置信度的關聯規則。
2)判別1得到的關聯規則,將其中不合理的關聯規則去除,得到新的關聯規則集合。
3)將2所得的關聯規則作為新的分類屬性與原有屬性合并,利用C4.5算法構造決策樹。
此處以部分課程與畢業設計、信號與系統、通信原理等課程的關聯性為例做詳細闡述,在實驗中可以挖掘任意多門課程之間的關聯性。
令L1為課程C語言及其應用(簡稱C語言)中高于平均分的成績記錄的集合,L2為課程高等數學中高于平均分的成績記錄的集合,L3為課程電路分析中高于平均分的成績記錄的集合,L4為課程信號與系統中高于平均分的成績記錄的集合,L5為課程高等數學2中高于平均分的成績記錄的集合,L6為課程模擬電子技術中高于平均分的成績記錄的集合,L7為課程通信原理中高于平均分的成績記錄的集合,L8為課程線性代數中高于平均分的成績記錄的集合,L9為課程數字電子技術中高于平均分的成績記錄的集合,L10為課程復變函數與積分變換(簡稱復變函數)中高于平均分的成績記錄的集合,L11為課程概率論與數理統計(簡稱概率論)中高于平均分的成績記錄的集合,L12為課程畢業設計類中高于平均分的成績記錄的集合。最小支持度和置信度都是人為設定的,可以根據實驗結果的優劣對這兩個參數進行調整。本文中設置最小支持度閾值為0.1,最小置信度為0.55,這樣是為了篩選出高可信度、強關聯規則的課程間關系。按照預設的最小支持度和最小置信度,可以挖掘任意課程間的關系,表2列出了課程的高置信度關聯規則計算結果。

表2 課程的高置信度關聯規則計算結果
通過表2可以看出,對于“畢業設計”這門課而言,專業性質較強的課程與之關聯性較大,比如信號與系統、C語言、通信原理;對于“信號與系統”這門課而言,數學類課程與之置信度最高,即關聯性最強;對于“通信原理”而言,數學課程和專業課程對其置信度都較高,即該課程對學生的專業先修課和數學課程都有較高要求。
3.2中Apriori算法得出的強關聯規則只要符合規則前件課程學期小于規則后件課程學期,即可生成新屬性,并與原有屬性合并生成決策樹。
在本文中,原有屬性包括性別、平均績點。關聯規則生成的新屬性包括C語言及其應用→畢業設計、信號與系統→畢業設計、模擬電子技術→畢業設計、通信原理→畢業設計、線性代數→畢業設計。為體現課程關聯性,生成的新屬性名稱會變成“xx→畢業設計”,但取值其實仍是原課程成績離散值(即A、B、C、D、E),其中為了降低決策樹的復雜度,本研究將畢業設計劃為優秀(總評大于80)與及格(總評大于60分)兩部分(所統計的數據均為正常畢業數據,成績均大于60)。
通過Python編寫C4.5算法對預處理后的數據集進行處理并將所有路徑合并后還原得到決策樹如圖2所示。
針對不同的課程,可以得到不同的結論。在高可信度強關聯規則的實驗中,得出以下結果:
1)在所選的11門專業課程與信號與系統的關聯規則中,課程復變函數與積分變換、概率論與數理統計、電路分析、高等數學、模擬電子技術對課程信號與系統的學習影響較大,同時這些課程的學習在前有利于信號與系統的學習。這說明教學計劃中將這些課程安排在課程信號與系統之前是十分正確的。

圖2 與畢業設計具有高可信度強關聯規則的課程的決策樹路徑
2)在課程通信原理的關聯結果中也可以得出信號與系統與其擁有最高關聯度的結論,也證明該課程對于通信原理的學習至關重要。
3)課程概率論與數理統計、線性代數雖然是公共課,但是置信度卻高于一些專業課程的置信度,因此說明概率論與數理統計、線性代數也是本專業的基礎知識儲備課程,不但要早學,還要學好,為后續課程的學習打下良好的基礎。
對于關聯規則與決策樹組合算法的成績分析實驗結果可以得到以下結論:
1)決策樹的第一個選擇屬性是平均績點的分類,說明平均績點對于畢業設計是第一個主要影響因素,這與平常經驗判斷所得結果是吻合的。
2)對于電子類專業來說,性別對專業課程的影響不大,可以看到無論男生女生,當模擬電子技術這門課程達到B時,專業綜合設計均是合格的。
3)對于電子類專業來說,數學類的課程對專業課程影響很大,比如概率論與數理統計、線性代數和復變函數與積分變換對畢業設計的影響。也充分說明在教學計劃中,數學類課程學分高是有理論依據的。
由于數據依然存在一定的噪聲以及組合算法不夠完善,分析結果可能會存在一定的誤差,但是相較于僅基于關聯規則或者決策樹算法的學生成績分析來說,本文所得出的理論結果準確度還是有一定的提高。
深度學習技術可以用來挖掘隱含在數據中的非線性關系,即輸入數據和預測標簽的非線性映射。因為在學生成績預測任務中,低年級課程成績和高年級課程成績存著一定的非線性關系,不能夠使用簡單的線性回歸來進行擬合,所以深度學習技術適用于學生成績預測。DNN是深度學習的基礎,是在神經網絡的基礎上發展而來,相對于神經網絡的區別在于DNN擁有很多隱含層。模型由輸入層、任意數量的隱藏層和輸出層組成,該算法受到人類大腦神經元的啟發,每一層則都是由神經元組成。
本文模型中,學生各科成績作為數據從輸入層輸入,經過3個隱含層后,輸出層輸出預測結果。定義一個神經元如下:
y=wix+bi
其中x表示輸入的成績向量,y表示輸出的預測結果向量,wi代表神經元學習到的權重,bi代表偏置。本模型中3個隱含層總共包含了300個神經元。為了提高模型的表達能力,需要增加非線性因素,所以在隱含層中,使用RuLU作為激活函數,如公式1:
(1)
為了加快模型的收斂速度,本文使用在輸出層使用Sigmoid作為激活函數,使用交叉熵作為損失函數。其中Sigmoid如公式2:
(2)
交叉熵損失函數定義如公式3:
L=-[ylog+(1-y)log(1-)]
(3)
經過50個Epoch的訓練后,模型的精確度可以達到84.3%。模型的初始精度為29.8%。在第一階段,準確率提高了20%。當目標輸出與模型輸出不匹配時,用代價函數softmax最大交叉熵計算誤差,然后使用adam優化器函數更新神經元的權重。如圖3所示,盡管本文DNN的數據集相對于其他領域來說非常有限,但其表現仍然優于其他機器學習算法。由于數據集是有限的,模型應該精確地調整,以提供更好的性能。最初在數據流圖中設置了4個隱藏層,每個隱藏層包含300個神經元,但并沒有的到好的效果。因為成績數據沒有太多的特征,所以不需要過多的隱含層和神經元,于是進一步減少到2個隱層,每層100個神經元。經過50個Epoch的訓練,精度波動較小,停止訓練。

圖3 左(a)為訓練時的模型精度-Epoch變化圖;右(b)為訓練的損失函數交叉熵-Epoch變化圖
與部分學者論文中提出的三種成績預測模型進行了比較,在其論文中,使用了決策樹,樸素貝葉斯和人工神經網絡三種模型,并且按照同樣的編碼方式對本文中的數據集進行了訓練和測試[8],結果分別為:決策樹(J48)的預測準確率為82.2%,人工神經網絡預測準確率和樸素貝葉斯(NB)預測準確率均為80.0%,本文的DNN模型預測準確率為84.3%。由此可見,深度神經網絡可以獲得更高的精度,優于其他機器學習分類預測方法。為更形象地表示,本文取出某一位學生成績用DNN模型進行預測,并和該生真實成績進行比對,結果如表3所示。

表3 基于DNN模型的某學生課程成績預測結果
上述實驗結果表明,模型的預測具有一定的可參考性,其具體實際應用價值在于:對于剛大二結束的同學,可以通過模型預測出其未修課程的不及格風險,提前發出學業預警,進而有利于學生大三大四課程的學習。
本文首先通過對決策樹算法和關聯規則算法的深入研究,提出一種將兩者結合的解決方案,然后使用深度神經網絡(DNN)構建學生成績預測模型。基于關聯規則和決策樹組合算法的成績分析模型,一方面可以獲取學生各課程間的關聯性,擴展分析預測結果的覆蓋面;另一方面可以提高成績預測的準確率,這是因為各課程間的關聯度對某單科成績必然存在某些影響。基于DNN的成績預測模型可以用來以學生低年級(大一大二)的先修課成績來對高年級(大三大四)的專業課成績進行預測,實現成績預警功能。本文的主要工作集中在以下三個方面:
1)利用關聯規則算法挖掘分析課程間的關聯性,并生成用于構造決策樹的新屬性。
2)通過信息增益率的思想將生成的新屬性和原有屬性構造成決策樹,實現學生成績分析預測。
3)構建基于DNN算法的成績預測模型,實現對學生高年級專業必修課成績的分析預測。
本文預期實現三個維度的作用:在學生維度,學生可根據自己現有的成績預測后續課程中有不合格風險的課程,提高后續學習中的針對性;在教師維度,教師可根據學生成績分析結果對不同學生制定合適的教學模式與方法,提高教學質量,比如說某學生的某一學科出現不合格現象,那么老師可以通過模型得出的結論,重點關注學生后續課程中與該課程關聯的學科學習情況;在教務管理人員維度,教務管理人員可根據學生成績分析結果了解課程之間的關聯性,制定更合適的教學計劃,從而提高學生成績和教學質量。