崔佳杉 年 梅 張 俊,2
(1.新疆師范大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 烏魯木齊 830054)(2.中國科學(xué)院新疆理化技術(shù)研究所 烏魯木齊 830011)
學(xué)業(yè)成績預(yù)測(cè)是幫助學(xué)生規(guī)避學(xué)業(yè)風(fēng)險(xiǎn)的重要手段。在高校教學(xué)中,學(xué)生課程成績是衡量學(xué)生知識(shí)掌握程度和教師教學(xué)結(jié)果的重要尺度,對(duì)學(xué)生學(xué)業(yè)成績進(jìn)行預(yù)測(cè),能夠?yàn)閷W(xué)生提供課程提供指引,幫助學(xué)生規(guī)避學(xué)業(yè)風(fēng)險(xiǎn)[1~4]。但是學(xué)校現(xiàn)有教務(wù)管理系統(tǒng)無法有效實(shí)現(xiàn)學(xué)業(yè)預(yù)警等功能,這也限制了新一輪人才培養(yǎng)方案的調(diào)整與制定。針對(duì)以上問題,本文提出一種基于XGBoost 回歸算法的學(xué)業(yè)成績預(yù)警模型。XGBoost 作為開源機(jī)器學(xué)習(xí)項(xiàng)目,高效地實(shí)現(xiàn)了GBDT 算法并進(jìn)行了改進(jìn),將之運(yùn)用到學(xué)業(yè)成績預(yù)警上具有很重要的理論意義。
隨著學(xué)分制改革的發(fā)展,基于學(xué)分制改革思維基礎(chǔ)上的全過程教務(wù)管理系統(tǒng)應(yīng)該能夠滿足學(xué)生選課、學(xué)分查詢及學(xué)業(yè)預(yù)警、個(gè)性化人才培養(yǎng)方案訂制。王斌等[5]使用Pearson 相關(guān)系數(shù)、隨機(jī)森林算法和Apriori 算法,評(píng)價(jià)學(xué)生不及格的狀態(tài),建立預(yù)警規(guī)則,但是通過分類特征預(yù)測(cè)出學(xué)生不及格準(zhǔn)確率情況有待提高。劉麗娟等[6]基于隨機(jī)森林算法構(gòu)建學(xué)生學(xué)業(yè)預(yù)警預(yù)測(cè)模型,但在預(yù)測(cè)結(jié)果中只有“被預(yù)警”和“不被預(yù)警”兩類,一定程度上限制了研究結(jié)論的應(yīng)用范圍。劉姣等[7]利用模糊決策樹算法確定了模型屬性指標(biāo),通過改進(jìn)決策樹算法和建立模糊矩陣對(duì)學(xué)生學(xué)業(yè)成績進(jìn)行分析,但是并未對(duì)模糊決策樹模型進(jìn)行實(shí)驗(yàn)精度的準(zhǔn)確評(píng)估。喻鐵朔等[8]在SVR 回歸在成績預(yù)測(cè)預(yù)警中的應(yīng)用研究中,在微觀經(jīng)濟(jì)學(xué)和數(shù)理統(tǒng)計(jì)課程的預(yù)測(cè)正確率分別為15.79%和96.87%,正確率差異十分明顯,但相應(yīng)的成績和學(xué)業(yè)預(yù)警能滿足部分教學(xué)管理和改善學(xué)生學(xué)業(yè)的需求。Kotsiantis等[9]應(yīng)用了幾種DM算法來根據(jù)大學(xué)遠(yuǎn)程學(xué)習(xí)計(jì)劃預(yù)測(cè)計(jì)算機(jī)科學(xué)專業(yè)學(xué)生的表現(xiàn),對(duì)于每個(gè)學(xué)生,將幾個(gè)人口統(tǒng)計(jì)學(xué)(例如性別、年齡、婚姻狀況)和表現(xiàn)屬性(例如給定作業(yè)中的分?jǐn)?shù))用作二進(jìn)制合格/不合格分類器的輸入,通過樸素貝葉斯方法獲得準(zhǔn)確度為74%,準(zhǔn)確率有待進(jìn)一步提高。
2.1.1 梯度提升數(shù)(GBDT)
XGBoost 本質(zhì)上是一個(gè)GBDT,屬于boosting 方法。2001 年Friedman 等提出一種通過迭代產(chǎn)生的決策樹算法,即梯度提升樹(GBDT)。該算法由多棵決策樹組合而成,最終預(yù)測(cè)結(jié)果是把所有決策樹得出的結(jié)論相加[10~11]。利用傳統(tǒng)的回歸決策樹進(jìn)行訓(xùn)練,得到圖1所示結(jié)果。
圖1 傳統(tǒng)回歸決策樹
利用GBDT 方法進(jìn)行訓(xùn)練時(shí),得到圖2 所示結(jié)果。
圖2 GBDT模型
第一棵樹分枝中的結(jié)果與圖1 一樣,由于A 和B的年齡差距不大,C和D 年齡相差也不大,因此將平均年齡作為預(yù)測(cè)值被分為兩類。計(jì)算殘差時(shí),需要用實(shí)際值減去預(yù)測(cè)值,此時(shí)A 的殘差為15-16=-1,B 的殘差為1,C 的殘差為-1,D 的殘差為1。在下一棵樹的學(xué)習(xí)中,ABCD 的原值用殘差代替,若預(yù)測(cè)值=殘差,則需要把結(jié)果累加。第二棵樹上被分成兩個(gè)節(jié)點(diǎn)的1 和-1,此時(shí)殘差結(jié)果為0,即預(yù)測(cè)值真實(shí)。
2.1.2 XGBoost算法原理
XGBoost 是在GBDT 的基礎(chǔ)上進(jìn)行改進(jìn),引入了樹模型的復(fù)雜度,避免過擬合,在學(xué)習(xí)效果和訓(xùn)練速度上有很大提高。其核心算法思想為:利用每次特征分裂后的樹去擬合預(yù)測(cè)殘差,最后該樣本的預(yù)測(cè)值為每棵樹對(duì)應(yīng)的樣本特征相加。
XGBoost的實(shí)現(xiàn)過程:
設(shè)xgboost模型的第t輪的目標(biāo)函數(shù)為公式:
l為第t 輪的損失項(xiàng),Ω為模型中決策樹的正則項(xiàng),即:
根據(jù)泰勒展開公式得到,得到最優(yōu)系數(shù)和目標(biāo)函數(shù)最優(yōu)值:
1)SSE(和方差)
該參數(shù)計(jì)算的是擬合數(shù)據(jù)和原始數(shù)據(jù)對(duì)應(yīng)點(diǎn)的誤差的平方和[12],計(jì)算公式為
其中yi是真實(shí)數(shù)據(jù)是擬合的數(shù)據(jù),wi>0。數(shù)據(jù)預(yù)測(cè)結(jié)果的準(zhǔn)確性與SSE 的值相關(guān),模型的擬合程度越好時(shí),其SSE值越接近0。
2)MSE(均方誤差)
該參數(shù)是預(yù)測(cè)數(shù)據(jù)和原始數(shù)據(jù)對(duì)應(yīng)點(diǎn)誤差的平方和的均值,也就是[13],計(jì)算公式為
其中n為樣本的個(gè)數(shù)。
3)MAE(平均絕對(duì)值誤差)
為了更好地反映預(yù)測(cè)誤差的情況,引入絕對(duì)誤差平均值的概念。
其中,fi表示預(yù)測(cè)值,gi表示真實(shí)值。
4)擬合優(yōu)度(GOF)
回歸直線對(duì)觀測(cè)值的擬合程度稱為擬合優(yōu)度(Goodness of Fit)??蓻Q系數(shù)(也叫作確定系數(shù))r2是度量擬合優(yōu)度的統(tǒng)計(jì)量[14~16]。r2的取值范圍是[0,1]。r2的值越接近1,說明回歸直線對(duì)觀測(cè)值的擬合程度越好;反之r2的值越接近0,說明回歸直線對(duì)觀測(cè)值的擬合程度越差。
設(shè)y為待擬合數(shù)值,其均值為,擬合值為,記為
總平方和:
回歸平方和:
則有:
得到?jīng)Q定系數(shù):
實(shí)驗(yàn)數(shù)據(jù)集,采用UCI 公開的數(shù)據(jù)集:Student Performance Data Set[7]。該數(shù)據(jù)包括了兩所葡萄牙中學(xué)學(xué)校的學(xué)生學(xué)業(yè)成績情況。數(shù)據(jù)屬性包括學(xué)生成績,學(xué)習(xí)時(shí)間,家庭人員受教育程度,課外學(xué)習(xí)時(shí)間,身體健康等相關(guān)特征。數(shù)據(jù)集中G1 和G2 分別對(duì)應(yīng)第1 階段成績和第2 階段成績,G3 的成績是在第3階段發(fā)布,所以G3與G2和G1之間具有很強(qiáng)的相關(guān)性。
使用XGBoost 算法時(shí),要進(jìn)行稀疏數(shù)據(jù)的處理。XGBoost 模型內(nèi)部建模成一個(gè)回歸預(yù)測(cè)問題,要將輸入數(shù)據(jù)轉(zhuǎn)化為數(shù)值型。數(shù)據(jù)處理過程中要將string 類型的列放到list 中,建立字典,將類別轉(zhuǎn)化成對(duì)應(yīng)的序號(hào)。
在python3.7 中導(dǎo)入相關(guān)的庫,然后導(dǎo)入數(shù)據(jù)集用做模型訓(xùn)練和預(yù)測(cè),并在訓(xùn)練集和測(cè)試集中隨機(jī)選擇80%的數(shù)據(jù)量作為訓(xùn)練集數(shù)據(jù),測(cè)試集為20%,訓(xùn)練集與測(cè)試集的比例為4∶1。利用xgboost.XGBRegressor 建立XGB 模型,其中,葉子節(jié)點(diǎn)是最大深度的10 倍,模型結(jié)果顯示訓(xùn)練的回歸指標(biāo)為99.9%。
基于mat 數(shù)據(jù)集中的396 個(gè)訓(xùn)練數(shù)據(jù),采用XGBoost 算法建立的學(xué)生成績預(yù)警模型,準(zhǔn)確率達(dá)到了85.8%,如表1 所示。采用por 數(shù)據(jù)集中的650個(gè)數(shù)據(jù)樣本,準(zhǔn)確率也達(dá)到了83.2%,如表2 所示,因此該模型是有效的。
表1 mat數(shù)據(jù)集下的實(shí)驗(yàn)預(yù)測(cè)結(jié)果
表2 por數(shù)據(jù)集下的實(shí)驗(yàn)結(jié)果
由預(yù)測(cè)模型表明,學(xué)生成績表現(xiàn)與一些其他因素相關(guān),例如,與學(xué)校相關(guān)(例如缺勤人數(shù),額外教育資助等),受眾特征(例如,學(xué)生的年齡,父母的工作和受教育程度等。)基于XGBoost 算法的學(xué)生學(xué)業(yè)成績預(yù)警模型,因其不錯(cuò)的學(xué)習(xí)效果和訓(xùn)練速度,應(yīng)用教育數(shù)據(jù)挖掘,有很好的理論意義。
采集計(jì)算機(jī)科學(xué)技術(shù)學(xué)院本科生2018 學(xué)年~2019 學(xué)年上下學(xué)期學(xué)生學(xué)習(xí)狀態(tài)信息,包括學(xué)生考勤、學(xué)生作業(yè)、上學(xué)期期末成績、下學(xué)期期末成績。數(shù)據(jù)預(yù)處理的過程中,剔除空白數(shù)據(jù)和無效數(shù)據(jù),將數(shù)據(jù)集保存成csv 格式,同樣是在二進(jìn)制/五級(jí)分類和回歸任務(wù)下建模,如表3 所示。學(xué)生成績數(shù)據(jù)集包含458 條有效數(shù)據(jù),訓(xùn)練集與測(cè)試集的數(shù)據(jù)分別為368條和92條。
表3 學(xué)生成績分類等級(jí)
對(duì)于表4 的預(yù)測(cè)結(jié)果進(jìn)行分析,使用XGBoost算法模型進(jìn)行實(shí)際應(yīng)用,準(zhǔn)確率達(dá)到75.2%。通過對(duì)學(xué)生學(xué)業(yè)成績的預(yù)測(cè)結(jié)果分析,可以得出,作業(yè)差的學(xué)生成績預(yù)測(cè)結(jié)果較差,考勤成績較好的同學(xué)對(duì)期末成績影響不大。
表4 模型應(yīng)用結(jié)果
文章講述了XGBoost 算法的基本理論,采用XGBoost 算法回歸模型對(duì)學(xué)生學(xué)業(yè)成績預(yù)警問題進(jìn)行了分析。通過公開樣本數(shù)據(jù)集對(duì)算法模型進(jìn)行學(xué)業(yè)成績預(yù)測(cè)分析,準(zhǔn)確率可以達(dá)到85.8%。結(jié)合相關(guān)文獻(xiàn)中的實(shí)驗(yàn)結(jié)論,可以看出XGBoost 相較于傳統(tǒng)的機(jī)器學(xué)習(xí)方法有更好的分類效果。在實(shí)際應(yīng)用中,使用XGBoost 算法模型進(jìn)行學(xué)院學(xué)生的成績預(yù)測(cè),實(shí)驗(yàn)準(zhǔn)確率達(dá)到了75.2%,為學(xué)生的學(xué)業(yè)預(yù)警提供了理論依據(jù)。