胡 佳
(南昌師范學院數學與信息科學學院,南昌 330029)
數據挖掘是一種從大量數據中提取潛在的和有價值的知識的過程。所謂的分類是把數據庫的記錄映射到一個已經定義好的類中的過程。實現分類的方法有很多,包括機器學習方法、神經網絡和統計方法等,其中機器學習的決策樹方法是一個比較熱門的方向,其是通過信息論中的信息增益去尋找數據庫中具有最大信息量的屬性,建立決策樹的一個可以分裂的結點,再根據這個屬性字段的不同取值去建立樹的分支。決策樹方便于企事業單位管理部門做出決策。決策樹學習算法的一個最大的優點就是只要在建模過程中訓練事例能夠用“屬性-值”的方式表達出來,就能使用該算法來進行建模。
決策樹模型的內部結點是測試的屬性,葉子結點是最后測試的類別,分支是測試屬性的值。從決策樹的根到葉子結點的路徑就是一條分類規則。分類的過程分為兩步:建立模型和使用模型。建立模型是通過給定的訓練集找到適合的映射函數:->的表示模型,(該步也稱為有指導的學習),這里建立模型階段也分為兩步:樹的構造和樹的剪枝,其中樹的剪枝包括預先剪枝和后剪枝兩種方法;使用模型是使用上一步訓練完成的函數模型預測新數據的類別,或者對數據集中的每一類別進行描述,形成分類規則。這里我們一般采用交叉驗證法來評估模型,也就是在訓練開始前將一部分數據保留,在訓練后,利用這部分數據對模型進行驗證,一般認為準確率在60%的就比較合理。
決策樹數據挖掘的一般步驟為:數據預處理,采用決策樹算法進行挖掘,評價與表示。
整個C4.5的工作流程如圖1所示。

圖1 C4.5算法流程圖
為了配合學校的發展我們構建了數字化校園,目前已經有了自己的信息門戶平臺,在這個平臺中可以進行網上輔助教學,也可以完成一般的教務管理,比如在這個系統中可以輸入學生成績并生成成績分析表,通過成績分析表得出學生成績的分布情況,方便老師總結學生本次考試成績的基本情況,但是這種成績分析僅僅停留在表面,更多的還是出于教師的教學經驗判斷。
因此,本文采用決策樹方法中的C4.5算法,挖掘出考試成績與影響教學的各種因素之間隱藏的內在聯系。比如,教學改革的對象是計算機專業的學生,教學改革的課程是數據結構,在這門計算機專業的重要基礎課程教學過程中,影響學生最終教學效果的因素有學生自身的基礎、課堂教學方法和模式等,本次挖掘就是針對學生是否有畏懼情緒,先續課程是否扎實,教學的手段是否采用了多媒體,是否開辟了第二課堂等多方面因素對數據結構成績的影響進行挖掘,得出內在的規則,這里的第二課堂主要是采用多媒體的形式,為教學改革提供有利的理論支撐,并且在今后的教學中“對癥下藥”。本文首先對收集到的數據進行預處理。
本文挖掘的對象為接受過數據結構教學的計算機系的大一學生,其中包括進行教改的普通班學生和未進行教改的實驗班學生;挖掘的數據集包括學生的成績數據庫,以及采用調查問卷形式收集的學生相關信息情況表,將他們進行對比最后得出影響學生成績的潛在因素以及教學改革的效果,對調查問卷中的空白項進行忽略,對學生成績進行規范化,將數據集成得出表1。表1中的畏懼情緒有兩個屬性:是和否;采用網上學堂的兩個屬性:是和否;教學方式為兩種屬性:傳統教學全板書和采用1/3多媒體;C語言成績的三個屬性:良好、一般和不合格;數據結構分類的兩個屬性:良好和一般(其中分數≤75分為一般,分數>75為良好)。

表1 課程教學以及調查信息預處理后
本文采用C4.5算法進行數據挖掘,計算其信息增益率。訓練集的樣本數有350個,其中數據結構成績良好的有152個樣本,數據結構成績一般的有198個樣本。其信息增益率計算過程如下:
首先根據公式計算分類屬性的信息熵,Info(D)=-152/350×log(152/350)-198/350×log(198/350)=0.9875,根據公式,依次計算每個測試屬性的信息量。
(1)畏懼情緒屬性中屬性值為“是”的有200個,數據結構成績良好的有94個,數據結構成績一般的有106;畏懼情緒屬性中屬性值為“否”的有150個,數據結構成績良好的有58個,數據結構成績一般的有92個,
Info畏 懼 情 緒(D)=200/350×(-log(94/200)-log(106/200))+150/350×(-log(58/150)-log(92/150))=2.0356。
(2)網上學堂教學屬性中屬性值為“是”的有173個,其中數據結構成績良好的有101個,數據結構成績一般的有62;網上學堂屬性中屬性值為“否”有177個,數據結構成績良好的有51個,數據結構成績一般的有126個,
Info是否采用網上學堂(D)=173/350×(-log(101/173)-log(62/173))+177/350×(-log(51/177)-log(126/177))=2.2713。
(3)教學方法屬性中屬性值為“1/3多媒體”有213個,其中數據結構成績良好的有121個,數據結構成績一般的有92;網上學堂屬性中屬性值為“板書”有137個,數據結構成績良好的有31個,數據結構成績一般的有106個,
Info教 學 方 法(D)=213/350×(-log(121/213)-log(92/213))+137/350×(-log(31/137)-log(106/137))=2.2176。
(4)C語言成績屬性中屬性值為“良好”的有144個,其中數據結構成績良好的有95個,數據結構成績一般的有49;C語言成績中屬性值為“一般”有206個,數據結構成績良好的有57個,數據結構成績一般的有149個,
InfoC語 言 成 績(D)=144/350×(-log(95/144)-log(49/144))+206/350×(-log(57/206)-log(149/206)=2.2528。
因此:
Gain(畏懼情緒)=Info(D)-Info畏懼情緒(D)=0.9875-2.0356=-1.0481;
Gain(是否采用網上學堂)=Info(D)-Info是否采用網上學堂(D)=0.9875-2.2713=-1.2838;
Gain(教學方法)=Info(D)-Info教學方法(D)=0.9875-2.2176=-1.2301;
Gain(C語言成績)=Info(D)-InfoC語言成績(D)=0.9875-2.2528=-1.2653;
SplitInfo(畏懼情緒)=-200350×log(200/350)-150/350×log(150/350)=0.9852;
SplitInfo(是否采用網上學堂)=-173/350×log(173/350)-177/350×log(177/350)=0.9999;
SplitInfo(教學方法)=-213/350×log(213/350)-137/350×log(137/350)=0.9657;
SplitInfo(C語言成績)=-144/350×log(144/350)-206/350×log(206/350)=0.9772;
GainRatio(畏懼情緒)=Gain(畏懼情緒)/SplitInfo(畏懼情緒)=-1.0481/0.9852=-1.0638;
GainRatio(是否采用網上學堂)=Gain(是否采用網上學堂)/SplitInfo(是否采用網上學堂)=-1.2838/0.9999=-1.2839;
GainRatio(教學方法)=Gain(教學方法)/SplitInfo(教學方法)=-1.2301/0.9657=-1.2738;
GainRatio(C語言成績)=Gain(C語言成績)/SplitInfo(C語言成績)=-1.2653/0.9772=-1.2948。
此時,得出的最大信息增益率是:C語言成績,采用網上學堂和教學方法的兩個屬性可以合并,進行分裂后,再按相同的方法進行分裂。

圖2 第一次分裂屬性
采用遞歸的思想計算優良分支中的教學方法和畏難情緒的信息增益率,得到教學方法的信息率更大,因此將優秀分支進行教學方法的劃分,以期僅剩下畏難情緒屬性,可以根據樣本的比率進行分配。

圖3 再一次分裂屬性
同理,通過迭代完成分支的劃分,最終建立C4.5決策樹模型,如圖4所示。

圖4 最終的決策樹模型
因為數據清理過程中已經對數據進行過處理,所以這里不進行剪枝。
采用IF-THEN表示分類規則為:
IF C語言成績優良AND教學方法為多媒體,那么數據結構成績為良好。
IF C語言成績好AND采用板書,那么數據結構成績為一般。
IF C語言成績一般,AND有畏難情緒,那么數據結構成績為一般。
IF C語言成績一般AND沒有畏難情緒AND教學方法為多媒體,那么數據結構成績為良好。
IF C語言成績一般AND沒有畏難情緒AND教學方法采用板書,那么數據結構成績為一般。
本文通過預處理,然后對數據結構成績進行挖掘,得到了不同教學方法的重要性,數據結構是一門比較抽象的計算機課程,采用一定的多媒體教學對學生學習數據結構知識是有幫助的。在今后的教學過程中,我們可以選擇數據挖掘的各種方法和算法進行教學方面的挖掘,以達到輔助教師教學的決策。