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

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

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

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

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

圖4 最終的決策樹模型
因?yàn)閿?shù)據(jù)清理過程中已經(jīng)對數(shù)據(jù)進(jìn)行過處理,所以這里不進(jìn)行剪枝。
采用IF-THEN表示分類規(guī)則為:
IF C語言成績優(yōu)良AND教學(xué)方法為多媒體,那么數(shù)據(jù)結(jié)構(gòu)成績?yōu)榱己谩?/p>
IF C語言成績好AND采用板書,那么數(shù)據(jù)結(jié)構(gòu)成績?yōu)橐话恪?/p>
IF C語言成績一般,AND有畏難情緒,那么數(shù)據(jù)結(jié)構(gòu)成績?yōu)橐话恪?/p>
IF C語言成績一般AND沒有畏難情緒AND教學(xué)方法為多媒體,那么數(shù)據(jù)結(jié)構(gòu)成績?yōu)榱己谩?/p>
IF C語言成績一般AND沒有畏難情緒AND教學(xué)方法采用板書,那么數(shù)據(jù)結(jié)構(gòu)成績?yōu)橐话恪?/p>
本文通過預(yù)處理,然后對數(shù)據(jù)結(jié)構(gòu)成績進(jìn)行挖掘,得到了不同教學(xué)方法的重要性,數(shù)據(jù)結(jié)構(gòu)是一門比較抽象的計算機(jī)課程,采用一定的多媒體教學(xué)對學(xué)生學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)知識是有幫助的。在今后的教學(xué)過程中,我們可以選擇數(shù)據(jù)挖掘的各種方法和算法進(jìn)行教學(xué)方面的挖掘,以達(dá)到輔助教師教學(xué)的決策。