向東旭,宋明桂,李文雅,姚士曉,聶炎明
(西北農(nóng)林科技大學(xué) 信息工程學(xué)院,陜西 楊凌 712100)
學(xué)業(yè)預(yù)警是最具有前瞻性和預(yù)防性,有助于提升高校的教學(xué)質(zhì)量和學(xué)生的學(xué)習(xí)積極性與主動性,增強學(xué)校、學(xué)生以及家長之間三方聯(lián)系。江西理工大學(xué)、東北財經(jīng)大學(xué)等在大學(xué)生學(xué)業(yè)預(yù)警的應(yīng)用實踐等方面取得了不錯的成效[1]。近年來很多學(xué)者對學(xué)業(yè)預(yù)警以及相關(guān)算法進行研究。文獻[2]提出用核函數(shù)的模糊均值聚類(KFCM)改進支持向量機(SVM)數(shù)據(jù)決策算法,開展學(xué)生學(xué)業(yè)預(yù)警決策研究。文獻[3]中采用 K-means算法針對高維小樣本癌癥基因數(shù)據(jù)集的有效區(qū)分基因子集選擇難題,提出K-means改進SVM算法模型提升了分類器的性能。文獻[4]在分析課程之間的關(guān)系基礎(chǔ)上,運用遺傳優(yōu)化 BP神經(jīng)網(wǎng)絡(luò)算法對目標(biāo)課程績點進行預(yù)測。文獻[5]利用四種數(shù)據(jù)挖掘算法對學(xué)生課程績點進行預(yù)測獲知畢業(yè)時候的平均績點。文獻[6]通過構(gòu)造學(xué)業(yè)狀態(tài)特征向量,運用支持向量機得到非線性預(yù)測模型自動發(fā)現(xiàn)學(xué)習(xí)狀態(tài)不佳的學(xué)生并做出預(yù)警。文獻[7]運用關(guān)聯(lián)規(guī)則分析挖掘出學(xué)生課程考試成績與畢業(yè)之間的關(guān)聯(lián)關(guān)系。目前,大部分高校的學(xué)業(yè)預(yù)警機制基本都只是根據(jù)學(xué)分成績來進行預(yù)警。該種學(xué)業(yè)預(yù)警機制雖然是以實際數(shù)據(jù)為依據(jù),但沒有充分利用一切可統(tǒng)計的相關(guān)數(shù)據(jù)、對于數(shù)據(jù)沒有進行足夠的分析,且具有片面性?,F(xiàn)有機制一般都是在學(xué)生學(xué)分成績低于預(yù)警線后才對學(xué)生進行學(xué)業(yè)預(yù)警或是基于人文社會分析[8],具有滯后性且無法給出具體課程的預(yù)警。而且,目前還沒有較為系統(tǒng)的學(xué)業(yè)預(yù)警系統(tǒng)的文獻報道。
本文通過基于Item的協(xié)同過濾推薦算法為學(xué)生推薦其高風(fēng)險課程(該課程可能不合格)。
本文所使用的實驗數(shù)據(jù)為學(xué)院在讀和往屆學(xué)生的成績數(shù)據(jù)十余萬條,暫時采用了 2013-2016級某專業(yè)的20828條成績數(shù)據(jù)。在預(yù)處理階段,為了保護學(xué)生隱私,對數(shù)據(jù)處理中的關(guān)鍵信息進行匿名處理。同時,部分算法要求數(shù)據(jù)無空值,為了對原始數(shù)據(jù)中的成績空值進行填充,首先對所有課程進行人為分類(試驗中將111門課程分為7大類),對于每條成績?yōu)榭諗?shù)據(jù),將該成績賦值為該學(xué)生擁有的與該門課程同類的成績不為空的課程成績的均值。若與該門課程同類的其他課程成績均為空,則刪去這條數(shù)據(jù)。
借鑒推薦系統(tǒng)的思想,將課程類比為商品,將學(xué)生類比為用戶,將預(yù)警線與課程成績的差值類比為用戶對商品的評分。采用Item-Based的協(xié)同過濾算法(ItemCF),對學(xué)生可能會低于預(yù)警線的課程進行預(yù)測,并推薦給學(xué)生。
通過User對目標(biāo)Item的相似Item給出的分數(shù),預(yù)測出User對于目標(biāo)Item的分數(shù),其基于一個假設(shè)[3]:如果大部分User對于一些Item的評分比較相近,則當(dāng)前用戶對于這些Item的評分也會比較相近。因此,ItemCF的關(guān)鍵在于,Item之間相似度的求解,即Item-Item相似矩陣的求解。具體步驟如下:
(1)建立User-Item初始矩陣
對于原始數(shù)據(jù)成績,將良好的分數(shù)即大于X(70)分的成績數(shù)據(jù)篩去,并將保留的成績轉(zhuǎn)換成其對于X(70)的補數(shù)。這樣的轉(zhuǎn)化使得比較低的成績轉(zhuǎn)化成較高的user評分。處理完user評分后,建立如下矩陣:
該m行n列的矩陣中ijS表示 user i在 Item j的評分,m表示User數(shù)量,n表示Item數(shù)量。
(2)計算Item間相似矩陣
計算Item間的相似度的一種常用方法是計算余弦相似度,其公式如下:
其中 A,B分別代表兩個 Item,sim(A,B)即為 A和B之間的相似度。Ai代表第i個用戶對A的評分,即 SiA;Bi代表第i個用戶對B的評分,即 SiB。
(3)產(chǎn)生推薦
依據(jù)相似度矩陣,根據(jù) Usera對目標(biāo)項的最近topN鄰項的評分,計算出該 Item b的推薦指數(shù)Pab。得到用戶對于項的預(yù)測推薦指數(shù)后,根據(jù)設(shè)定的閾值進行篩選,得到最終的推薦集。值得注意的是,N參數(shù)的確定會影響推薦效果。推薦指數(shù)計算公式如下:
其中,b代表所要預(yù)測的目標(biāo)Item,in代表Item b的最近topN鄰居中的第i個Item,ianS 代表User a對Itemin的評分。
實驗結(jié)果表明,相較于采用 FP-growth方法進行課程推薦的學(xué)業(yè)預(yù)警系統(tǒng)[4]各指標(biāo)(如表 1),基于ItemCF的課程預(yù)警方法可以獲得更好的召回率、精確度、覆蓋率,分別如圖 1-4所示。其中,鄰居數(shù)選擇的范圍為 50-85,閾值分別為 0.09、0.095、0.098、0.1、0.102、0.105 和 0.11。
表1 采用FP-growth方法Tab.1 Adopting FP growth method
圖1 召回率Fig.1 Recall rate
圖2 精確度Fig.2 Accuracy
圖3 覆蓋率Fig.3 Coverage
本文將基于Item的協(xié)同過濾(ItemCF)算法創(chuàng)新地運用到大學(xué)生學(xué)業(yè)預(yù)警應(yīng)用場景中,利用課程間相似性來進行預(yù)警課程的推薦。采用Spark對基于ItemCF的學(xué)業(yè)預(yù)警方法予以實現(xiàn)。實驗表明,該方法具有良好的召回率、精確度,同時保持了高覆蓋率。
圖4 F-MeasureFig.4 F-Measure