摘要: 數(shù)據(jù)挖掘是數(shù)據(jù)倉庫技術(shù)中的重要技術(shù)之一。為了充分發(fā)揮考試的效能,綜合評價命題質(zhì)量,及時反饋教學(xué)效果,將數(shù)據(jù)挖掘技術(shù)與課程成績分析相結(jié)合,從海量的數(shù)據(jù)中發(fā)現(xiàn)隱藏的有用信息,并將這些信息資源進(jìn)行統(tǒng)計分析和總結(jié)是非常必要的。
關(guān)鍵詞:數(shù)據(jù)挖掘;成績分析;決策樹算法
一、引言
成績作為考試的結(jié)果,不僅是對學(xué)生學(xué)業(yè)和教師教學(xué)效果的檢查和評定,進(jìn)而激勵學(xué)生學(xué)習(xí)及教師工作;更是一種信息,具有反饋于教學(xué)活動、服務(wù)于教學(xué)決策、為教育科研提供資料等作用。為充分發(fā)揮考試的效能,綜合評價命題質(zhì)量,及時反饋教學(xué)效果,溝通教學(xué)信息,教學(xué)部門對考試成績進(jìn)行統(tǒng)計分析和總結(jié)是非常必要的。
二、問題提出
我們以軟件技術(shù)系軟件開發(fā)專業(yè)為例進(jìn)行分析。在眾多專業(yè)課程中,很多科目之間是相互聯(lián)系相互影響的,例如《Java初級程序設(shè)計》是《Java高級程序設(shè)計》的前置課程,《J2EE企業(yè)級應(yīng)用開發(fā)》則是《Java高級程序設(shè)計》的后續(xù)課程,《網(wǎng)頁制作—HTML、CSS》的學(xué)習(xí)效果將會影響《網(wǎng)頁制作—JavaScript》,而這些課程之間又是相互滲透相互聯(lián)系的。有時候有的教師在上一門課時會抱怨這個班的基礎(chǔ)不好,后續(xù)課程很難上,那么究竟是什么哪些前置課程對后續(xù)課程造成了影響呢?這里我們以軟件開發(fā)專業(yè)核心課程《J2EE企業(yè)級應(yīng)用開發(fā)》為例,分析研究影響這門課成績的前置課程對其的影響。
三、數(shù)據(jù)預(yù)處理
07級軟件開發(fā)專業(yè)一共9個班,前4個學(xué)期一共開設(shè)23門課程,在教學(xué)管理的數(shù)據(jù)庫中保存著大量屬性繁多,定義復(fù)雜,冗余多,不完整的數(shù)據(jù)。我們首先要從大量的數(shù)據(jù)中篩選出適合分析的數(shù)據(jù)。
在課程的選擇中,我們選取《計算機(jī)基礎(chǔ)》、《計算機(jī)網(wǎng)絡(luò)基礎(chǔ)》、《計算機(jī)數(shù)學(xué)基礎(chǔ)》、《Java程序設(shè)計基礎(chǔ)》、《數(shù)據(jù)結(jié)構(gòu)》、《數(shù)據(jù)庫原理與SQL Server》、《Java高級程序設(shè)計》、《網(wǎng)頁制作技術(shù)》以及《J2EE企業(yè)級應(yīng)用開發(fā)》這幾門有關(guān)聯(lián)的課程進(jìn)行分析。并且在分析之前把《計算機(jī)基礎(chǔ)》、《計算機(jī)網(wǎng)絡(luò)基礎(chǔ)》、《計算機(jī)數(shù)學(xué)基礎(chǔ)》這3門基礎(chǔ)課取平均值合并成一個《計算機(jī)基礎(chǔ)》。
這是在軟件技術(shù)專業(yè)9個班400多人中隨機(jī)抽樣選取91個學(xué)生的記錄作為樣本集。
表1 采樣成績表
經(jīng)統(tǒng)計,91個學(xué)生記錄中,各門課程及格和不及格人數(shù)如表5.2所示。
表2 樣本集中各門課及格不及格人數(shù)統(tǒng)計
四、建立模型
1. 決策樹方法介紹
決策樹是一個類似流程圖的樹型結(jié)構(gòu),其中樹的每個內(nèi)部結(jié)點代表對一個屬性(取值)的測試,其分支就代表了測試的每個結(jié)果;而樹的每個葉結(jié)點就代表一個類別,可以根據(jù)決策樹的結(jié)構(gòu)對數(shù)據(jù)集中的屬性值進(jìn)行測試,從決策樹的根結(jié)點到葉結(jié)點的一條路徑就形成了對相應(yīng)對象的類別預(yù)測。
2. ID3算法的基本思想及原理
ID3算法是R.Quinlan于1986年提出的,其前身是CLS。CLS的工作過程為:首先找出最有判別力的因素,把數(shù)據(jù)分成多個子集,每個子集又選擇最有判別力的因素進(jìn)行劃分,一直進(jìn)行到所有子集僅包含同一類型的數(shù)據(jù)為止,最后得到一棵決策樹,可以用它來對新的樣例進(jìn)行分類。
3. 構(gòu)建決策樹
成績結(jié)果分為正例和反例兩類:及格(P)和不及格(N)。
下面用ID3算法,建立決策樹,對課程成績分類。
具體計算過程如下:
首先計算J2EE課程所含有的信息量。J2EE及格人數(shù)P=81,不及格人數(shù)N=10,則可得到:
0.4493
然后計算當(dāng)J2EE及格和不及格時,其他課程所包含的總信息量。經(jīng)統(tǒng)計,其他6門課程和J2EE有如表3所示的統(tǒng)計數(shù)據(jù):
計算機(jī)基礎(chǔ):
0.4421
從而得到計算機(jī)基礎(chǔ)的信息增益度為:
Gain(計算機(jī)基礎(chǔ))=0.4493-0.4421=0.0072
同樣的方式,得到其他課程的信息增益度,結(jié)果如表4所示:
表4 各門課程的信息增益度
可以看出所有課程當(dāng)中JAVA高級程序設(shè)計是最能區(qū)別訓(xùn)練集中決定J2EE成績與否的課程。根據(jù)各個課程的信息增益度,應(yīng)該選擇JAVA高級程序設(shè)計作為所建決策樹的根結(jié)點。由于JAVA高級的屬性值只有兩個:1(及格)和0(不及格),所以在JAVA高級下可以建立兩個分支。此時,將訓(xùn)練實例集分為二個子集,生成包含二個葉結(jié)點的決策樹。如圖1所示。
圖1 根節(jié)點分類決策樹
經(jīng)統(tǒng)計,JAVA高級程序設(shè)計及格且J2EE也及格的人數(shù)為73,其準(zhǔn)確率為73/79=92.4%。因此對JAVA高級程序設(shè)計及格這個分支(結(jié)點一)停止分割。經(jīng)統(tǒng)計,JAVA高級程序設(shè)計不及格的12人中有5人J2EE及格,7人J2EE不及格,所以對高級程序設(shè)計不及格這個分支(結(jié)點二)進(jìn)行再次分割。
對圖1中的葉結(jié)點二進(jìn)行分類。經(jīng)過計算,此刻正例為4,反例為8,所以此時的熵值為:
0.9799
采用上面同樣的方法計算各門課程的信息熵,得到
計算機(jī)基礎(chǔ):
0.9799
得到Gain(計算機(jī)基礎(chǔ))= 0.9799-0.9799=0.0000
同理,得到:
Gain(JAVA基礎(chǔ))= 0.9799-0.9371=0.0482
Gain(數(shù)據(jù)結(jié)構(gòu))= 0.9799-0.8669=0.1130
Gain(數(shù)據(jù)庫)= 0.9799-0.9799=0.0000
Gain(網(wǎng)頁設(shè)計)= 0.9799-0.9371=0.0482
選擇數(shù)據(jù)結(jié)構(gòu)為分裂點,將結(jié)點二分為兩個子集。JAVA高級不及格且數(shù)據(jù)結(jié)構(gòu)及格的人數(shù)為1人,該結(jié)點停止分割,JAVA高級不及格且數(shù)據(jù)結(jié)構(gòu)不及格的11人中有4人J2EE及格,7人不及格,因此對該節(jié)點需要再次分割。
采用上述同樣的方式劃分,最后得到如圖2所示的最終決策樹。
圖2最終決策樹
五、結(jié)果分析
分析圖2所示的決策樹,我們可以得到:對于軟件專業(yè)后期的核心課程《J2EE企業(yè)級應(yīng)用開發(fā)》來說,《Java高級程序設(shè)計》的學(xué)習(xí)程度直接影響其學(xué)習(xí)效果,《數(shù)據(jù)結(jié)構(gòu)》和《JAVA初級程序設(shè)計》也會對《J2EE企業(yè)級應(yīng)用開發(fā)》的成績帶來影響,如果學(xué)生《JAVA高級程序設(shè)計》學(xué)習(xí)一般但是《數(shù)據(jù)結(jié)構(gòu)》和《JAVA初級程序設(shè)計》基礎(chǔ)較好的話,依然能夠在學(xué)習(xí)《J2EE企業(yè)級應(yīng)用開發(fā)》時取得好的成績。這比較符合專業(yè)課程學(xué)習(xí)過程的實際情況。決策樹得出的結(jié)果反映了實際情況,這也充分說明了數(shù)據(jù)挖掘是一個強(qiáng)有力的輔助決策工具。
六、結(jié)束語
回顧一下這個案例,驗證數(shù)據(jù)挖掘技術(shù)解決這個問題的效果。在分析過程中,我們利用相關(guān)的數(shù)據(jù),通過橫向比較《計算機(jī)基礎(chǔ)》、《Java程序設(shè)計基礎(chǔ)》、《數(shù)據(jù)結(jié)構(gòu)》、《數(shù)據(jù)庫原理與SQL Server》、《Java高級程序設(shè)計》、《網(wǎng)頁制作技術(shù)》以及《J2EE企業(yè)級應(yīng)用開發(fā)》等課程成績,經(jīng)過數(shù)據(jù)收集、數(shù)據(jù)選擇、數(shù)據(jù)清理、數(shù)據(jù)歸納、數(shù)據(jù)轉(zhuǎn)換等過程,運用決策樹中的ID3算法課程之間知識結(jié)構(gòu)相互支撐的模型,發(fā)現(xiàn)專業(yè)核心課程之間的內(nèi)在聯(lián)系。輔助教學(xué)管理人員根據(jù)該模型對現(xiàn)有教學(xué)計劃做出調(diào)整,對師資資源合理利用,將優(yōu)質(zhì)師資用在主干課程上。
參考文獻(xiàn):
1.李小映,數(shù)據(jù)挖掘在高職院校學(xué)校綜合信息中的應(yīng)用,計算技術(shù)與自動化,2006.12
2.陳松、盧繼萍,教學(xué)管理系統(tǒng)中的數(shù)據(jù)挖掘技術(shù)的應(yīng)用研究,中國教育技術(shù)裝備,2007.12
3.李雪真、陳燕國 ,基于數(shù)據(jù)挖掘的高校課程設(shè)置評價方法,科技資訊,2008.8
作者簡介:
汪曉青,助教,武漢軟件工程職業(yè)學(xué)院軟件技術(shù)系