陰愛英,楊曉花
(福州大學至誠學院 計算機工程系,福建 福州 350002)
基于決策樹的學生成績分類研究
陰愛英,楊曉花
(福州大學至誠學院 計算機工程系,福建 福州 350002)
本文根據決策樹分類技術對福建省計算機等級考試中的成績進行分析和挖掘.首先對成績數據進行離散化處理,設置成決策樹分類的屬性數據;接著利用ID3改進算法構建成績分類的決策樹模型,并對其剪枝;最后根據模型給出相應的規則和幾個教學建議.實驗結果表明,利用決策樹分類技術在計算機等級考試中進行挖掘分析的方法是有效可行的.
數據挖掘;決策樹;信息增益;計算機等級考試
隨著數據挖掘技術的發展,各行各業均利用數據挖掘技術來為其提供決策支持.數據挖掘技術是從大量的數據中,挖掘出人們開始并不知道的但又隱含在數據庫中的并且有用的信息[1].隨著高等教育行業的信息化技術的發展,越來越多的管理者或老師更加關注學生的學習情況,通過對歷年來的教學數據進行分析,挖掘出影響學生學習成績的一些關鍵信息,以此提高教學質量.
近年來,國內外學者對數據挖掘的應用進行了深入研究,如:Abeer等[2]根據現有的教學數據庫,利用決策樹分類技術預測學生的最終成績;Rupp等[3]通過EDM(Education Data Mining)和學習分析技術對學生學習能力進行挖掘;Alejandro[4]通過對EDM平臺進行維護和擴展,并對該平臺利用數據挖掘的方法進行分析和討論;Abdullah等[5]利用關聯規則對電子管理系統進行挖掘,為教育管理機構提供決策支持;姜永超通過關聯規則和序列模式進行挖掘,分別對學生選課和學習興趣的行為進行分析研究[6];顧輝等[7]利用對關聯規則Apriori算法的改進,并應用于《計算機基礎》課程的學生成績進行研究與分析;王華等[8]根據關聯規則技術對學生成績進行挖掘,并對學生的成績進行預警,及時找出可能出現不及格的課程,對部分學生給出警告.
本文通過在前期工作研究的基礎上[9],利用決策樹分類挖掘技術,對福建省計算機等級考試二級(C語言)進行挖掘,用決策樹分類技術構建學生成績是否合格與哪些題型得分情況有關的決策樹分類模型,為老師更好地教授好這門課程提供一些有用信息,也為學生能更好地通過等級考試提供了參考資料.
決策樹(Decision Tree)又稱判定樹[10],是采用樹型結構對數據進行分類的.它是從一堆沒有任何規則且是無序的數據中,根據分類規則,利用樹的形狀來表示這些數據的分類情況.在構造的決策樹中,樹的最頂層是根結點,它是表示第一次選擇分裂的屬性,而樹的其它內部結點(不是葉子結點)表示對其它屬性數據的測試,葉子結點表示數據屬性的分類情況,而對于一個決策樹的分支來說,其代表著某個測試數據屬性的分類情況輸出.
一般來說,利用決策樹進行分類挖掘時,需要經歷下面的過程:第一步是構建決策樹模型,即利用先知類型的樣本數據對其實行分類,構造一個決策樹模型.在這個步驟中要經歷兩個階段,即建樹和剪枝;第二步是通過使用已經構建好的樹型對數據集進行分類挖掘.為了找到輸入數據所屬的分類情況,需要對決策樹進行遍歷,即從根結點到葉子結點,依次對輸入數據進行測試,直到找到該數據所屬分類為止.
下面簡要介紹決策樹構造的基本方法:
(1)從訓練樣本的單個結點開始,構建決策樹.
(2)假如訓練數據都是歸屬于某個類型,則該結點成為樹葉節點,并對該樹葉節點進行類型標記.
(3)要不然的話,算法會繼續使用各種分裂技術來對樣本數據進行分類,其分類的依據是采用更好的分類屬性來進行的.
(4)為測試數據的每個值建立一個分支,并以此來劃分樣本.
(5)重復應用上面的步驟,直到整個決策樹構建完成.
3.1 改進ID3算法
ID3算法是Quinlan于上個世紀八十年代后期提出的[1],是決策樹分類中最為典型的算法之一.它通過對各個測試數據屬性進行計算它們各自的信息增益值,根據它們值的大小,來決定選取哪個數據作為分裂節點.在ID3算法中,是通過選擇增益值最大的屬性,作為分裂的屬性.信息增益值的計算公式如式(1)所示:

上述公式中,數據集D根據類別屬性的值可以分成相互獨立的類C1,C2,…,Cn,其出現的概率分別為pi,而v表示屬性A具有不同的值.
然而ID3算法存在著一些不足:ID3算法對于屬性的選擇通常是離散數據,而對連續值的屬性就無法應對;在對各個屬性數據進行計算其信息增益時,往往會選擇數據取值較多的屬性數據,但并不是所有屬性值大的屬性就是最優屬性;對于噪聲數據較為敏感等問題.
在前期對ID3算法進行改進的基礎上[9],主要思想是(具體算法請查看文獻[9]):一類為正例,一類為反例.假設,正例的個數為n個,反例的個數為m個.在訓練集D中,有屬性A,A有v個不同的值,當且有A=ai時,以屬性A分裂下的元素一共有ni+mi個.其中n為正例,則有ni個正例.同理,反例個數為mi.由此,我們可以得到:

改進的新算法是將作為新的信息期望,簡化了原先的計算方法,得出新的公式結論,計算每個屬性過后,值最小的信息作為分類標準.
3.2 數據處理
本文是針對福建省計算機等級考試二級(C語言)的成績利用決策樹分類模型進行分類挖掘.對于成績是連續型數據,而決策樹分類技術是需要離散的屬性值,因此就要對連續型數據轉變成離散型數據.在數據處理中所采用的是概念分層技術,如:將選擇題的得分情況按30~40分、19~29分、0~18分劃分為“高”、“中”、“低”三類,填空題、改錯題和編程題都是20分,它們得分情況按15~20分、8~14分、0~7分可以劃分為“高”、“中”和“低”三類,對于成績來說,我們挖掘的內容是成績合格與否,因而將成績按0~59分和60分以上劃分為“不合格”和“合格”兩類數據.經過數據預處理工作后,得到挖掘的數據源(共8483條),如表1所示.

表1 數據預處理后的數據集
3.3 信息增益的計算
根據上述數據處理后的數據集,利用公式(4)可以計算出各個屬性值的信息增益值:
(1)選擇題的信息增益值:
在計算選擇題的信息增益時,需要分別計算選擇題得分情況為高、中、低三種屬性值情況下,它們成績合格人數和不合格人數.在測試樣本數據集中,選擇題得分為高,成績為合格的人數有2545人,成績為不合格的人數有328人,選擇題得分為中,成績為合格的人數有1193人,成績為不合格的人數有2656人,而選擇題得分為低,成績為合格的人數有15人,成績為不合格的人數有1263人.根據這些信息,我們得到計算平時成績的信息增益如下:

(2)改錯題的信息增益值:
在測試樣本數據集中,改錯題的得分情況有三種屬性值,在改錯題得分為高下,成績為合格的人數有3074人,成績為不合格的人數有814人,改錯題得分為中,成績為合格的人數有651人,成績為不合的人數有1728人,改錯題得分為低,成績為合格的人數有28人,成績為不合的人數有1705人,因此其信息增益值為:

(3)編程題的信息增益值:
編程題有三個屬性值,在編程題得分為高,成績為合格的人數有589人,成績為不合格的人數有10人,在編程題得分為中,成績為合格的人數有2625人,成績為不合格的人數有804人,在編程題得分為低,成績為合格的人數有539人,成績為不合格的人數有3433人,因此其信息增益值為:

(4)填空題的信息增益值:
填空題有三個屬性值,在填空題得分為高,成績為合格的人數有2744人,成績為不合格的人數有371人,在填空題得分為中,成績為合格的人數有893人,成績為不合格的人數有1419人,在填空題得分為低,成績為合格的人數有116人,成績為不合格的人數有2457人,因此其信息增益值為:

3.4 成績分類的決策樹構建
首先就是創建根節點,然后選取各個屬性的信息增益值為最小的屬性作為分裂屬性,根據上面對各個屬性的信息增益值進行計算,填空題的信息增益值最小,因而將填空題作為決策樹的根節點,建立一個決策樹,決策樹上的根節點標記為“填空題”.對于填空題的三種取值,即高、中和低,分別建立相應的子集,引出相應的分支,如圖1所示.
在圖1種決策樹只有一層,那么在填空題的每個分支上繼續按照上面的方法建立相應的決策樹,通過遞歸算法,計算相應屬性的信息增益值,確定每個分支中各個節點,直到子集為空或者沒有屬性可以劃分為止,最終可以形成一顆決策樹.
在形成了決策樹中,樹型比較復雜,樹枝比較繁雜,比較難于理解,因而需要對生產的決策樹進行剪枝,剪枝的目的是使樹型變得更小、復雜度更低、更容易理解.如在構造的等級考試成績分類的決策樹上,填空題得分為中且改錯題得分為中且選擇題得分為中的情況下,編程題得分為高、中、低情況下,其合格的人數分別為13人、60人和0人,而不及格的人數分別為1人、168人和354人,從這些情況看基本是不及格占絕大多數,因此可以把它們合并為不合格,同樣,在填空題得分為高且改錯題得分為中且選擇題得分為中的情況下,編程題得分為高、中、低情況下,其分數為合格的人數分別為15人、128人和5人,而分數為不合格的人數分別為0人、22人和118人,這樣就可以把編程題得分為高和中合并為“≥中”等等.最終經過剪枝后生成的決策樹如圖2所示.
3.5 決策樹分類規則及建議
根據圖2生成學生成績分類決策樹模型,可以得出一些分類規則,具體的表述如下:
IF填空題=高and改錯題=高THEN成績為合格的概率95.3%(即:如果填空題得分在15~20分且改錯題在15~20分時,成績為合格的人數為2271,不合格的人數為111,下面規則的解釋也是一樣,就不再進行詳細解釋)
IF填空題=高and改錯題=低THEN成績為不合格的概率75.8%
IF填空題=高and改錯題=中and選擇題=高THEN成績為合格的概率96.2%
IF填空題=高and改錯題=中and選擇題=低THEN成績為不合格的概率100%
根據以上得出的分類規則,我們可以給出以下一些建議:
(1)從學生角度來說,要想更好地通過福建省計算機等級考試二級(C語言),那么應該在填空題和改錯題兩題中得分高些.而省等級計算機考試在考察填空題和改錯題的內容上,恰恰是考察學生的閱讀程序和修改程序的能力,因此建議學生平時要多注重閱讀程序能力的培養,只有大量的閱讀程序,才能更好的修改程序和編寫程序.
(2)從教師角度來說,要想讓學生更好地通過省計算機等級考試,則應該在課堂授課中注重理論與實踐相結合,不關是簡單地講解基本理論知識,更應該在課堂上機過程中培養學生讀和寫程序的能力.
本文針對現階段福建省計算機等級考試二級(C語言)的學生成績,利用決策樹分類技術,對等級考試中的成績建立決策樹模型,為提高教師的教學質量提供決策支持.首先,將等級考試中連續型數據進行離散化處理,構建符合決策樹分類的屬性數據,接著利用前期提出了ID3改進算法,計算出各個屬性的增益值,選擇信息增益值最小的屬性作為分類的根節點,并用遞歸算法完成整個決策樹的構建,然后對構建的決策樹進行了剪枝,使其變成較為簡單的決策樹模型,最后根據決策樹模型得出了一些有關教學的規則,并給出一些相關的教學建議.
現階段隨著教學質量的提升,各個高校對提高教學質量也投入了大量精力,下一步工作,我們將繼續采用數據挖掘技術對教學數據進行分析和挖掘,構建更為合理的模型,為提高教學質量提供一些建議.
〔1〕范明,孟小峰,等.數據挖掘概念與技術[M].北京:機械工業出版社,2010.
〔2〕Abeer B E D A,Sayed Elaraby I.Data Mining:A prediction forStudent'sPerformance Using Classification Method[J].World Journal of Computer Application&Technology,2014,2 (2):43-47.
〔3〕Rupp A A,Leighton J P,Baker R S,et al. Educational Data Mining and Learning Analytics[M].Learning Analytics.2014:379-396.
〔4〕Pena-AyalaA.Educationaldatamining:A survey and a data mining-based analysis of recent works[J].Expert Systems with Applications,2014,41(4):1432–1462.
〔5〕Abdullah Z,Herawan T,Deris M M.Discovering Interesting Association Rules from Student Admission Dataset[J].Lecture Notes in Electrical Engineering,2014,285:135-142.
〔6〕姜永超.基于數據挖掘的學生選課及學習行為分析算法研究 [J].現代電子技術,2016,39(13): 145-148.
〔7〕顧輝,楊青,蔣成功,等.關聯規則在成績分析中的研究及應用[J].計算機應用,2015(S1):149-151.
〔8〕王華,劉萍.改進的關聯規則算法在學生成績預警中的應用[J].計算機工程與設計,2015(3):679-682.
〔9〕陰愛英.決策樹ID3算法的一種改進[J].電子世界,2014(22):433-434.
〔10〕梁亞聲,徐欣,成小菊,等.數據挖掘原理、算法與應用[M].北京:機械工業出版社,2015.
TP391
A
1673-260X(2017)08-0018-04
2017-05-23
福建省教育廳中青年教師教育科研項目(NO.JAT160658)