楊麗萍,郭宏升
(1.包頭師范學(xué)院信息科學(xué)與技術(shù)學(xué)院,內(nèi)蒙古包頭,014030;2.包頭師范學(xué)院政治與法律學(xué)院,內(nèi)蒙古包頭,014030)
近年來,隨著教育系統(tǒng)對(duì)大數(shù)據(jù)應(yīng)用的不斷探討,大數(shù)據(jù)對(duì)高校教師教學(xué)與管理的支持日益加強(qiáng),同時(shí),在高校教育管理中,人們深刻認(rèn)識(shí)到大數(shù)據(jù)在管理與決策中的重要作用,不再依賴于傳統(tǒng)意義上的經(jīng)驗(yàn)管理和直覺推斷。大數(shù)據(jù)可以深度挖掘教育教學(xué)數(shù)據(jù)中的隱藏信息,發(fā)現(xiàn)教育過程中存在的問題和關(guān)鍵點(diǎn),提供決策來優(yōu)化教育管理。
利用大數(shù)據(jù)分析技術(shù)可以系統(tǒng)全面地整合學(xué)生的行為數(shù)據(jù),對(duì)課堂教學(xué)實(shí)現(xiàn)全面的評(píng)價(jià)與分析。教師通過對(duì)學(xué)生行為相關(guān)的海量數(shù)據(jù)進(jìn)行分析,可以發(fā)現(xiàn)學(xué)生的學(xué)習(xí)行為之間的關(guān)聯(lián)關(guān)系,以及學(xué)習(xí)行為與學(xué)習(xí)結(jié)果之間的關(guān)聯(lián)關(guān)系,從而對(duì)學(xué)生的學(xué)習(xí)成績、課堂表現(xiàn)、知識(shí)掌握情況進(jìn)行預(yù)測與評(píng)估,制定更為合理的教學(xué)方案,對(duì)有個(gè)性化需要的學(xué)生提供幫助。
決策樹是一類常見的機(jī)器學(xué)習(xí)方法,是對(duì)訓(xùn)練集中數(shù)據(jù)表現(xiàn)出的屬性進(jìn)行總結(jié)分類,為表現(xiàn)出來的屬性找到一個(gè)確切的描述與分類的模型,由該模型可以對(duì)未來不可預(yù)測的數(shù)據(jù)進(jìn)行分類[1]。決策樹分類算法是以給定數(shù)據(jù)樣本為基礎(chǔ)的歸納學(xué)習(xí)方法。在給定已知類標(biāo)號(hào)的數(shù)據(jù)集的情況下,采用自頂向下的遞歸方式產(chǎn)生一棵樹結(jié)構(gòu)[2]。樹的最頂層結(jié)點(diǎn)稱為根結(jié)點(diǎn),最底層結(jié)點(diǎn)稱為葉結(jié)點(diǎn),每個(gè)葉結(jié)點(diǎn)代表樣本的類別。根結(jié)點(diǎn)和葉結(jié)點(diǎn)之間的結(jié)點(diǎn)稱為內(nèi)部結(jié)點(diǎn)。決策樹分類算法首先選擇具有最高信息增益的描述屬性作為給定數(shù)據(jù)集的分支屬性,從而創(chuàng)建決策樹中的一個(gè)結(jié)點(diǎn),并且根據(jù)該描述屬性的不同取值再創(chuàng)建分支,之后對(duì)各分支中的樣本子集遞歸調(diào)用上述方法建立該結(jié)點(diǎn)的各個(gè)子結(jié)點(diǎn)[3]。當(dāng)某個(gè)分支上的所有數(shù)據(jù)樣本都屬于同一個(gè)類別時(shí)劃分停止,形成葉結(jié)點(diǎn);或者當(dāng)某個(gè)分支上的樣本不屬于同一個(gè)類別,但是又沒有剩余的描述屬性可以進(jìn)一步劃分?jǐn)?shù)據(jù)集時(shí)也形成葉結(jié)點(diǎn),并且用多數(shù)樣本所屬的類別來標(biāo)記這個(gè)葉結(jié)點(diǎn)。對(duì)未知類標(biāo)號(hào)的數(shù)據(jù)樣本進(jìn)行分類時(shí),從根結(jié)點(diǎn)開始逐層向下判斷,直到葉結(jié)點(diǎn),就可以得到該數(shù)據(jù)樣本的類標(biāo)號(hào)。
假設(shè)給定的數(shù)據(jù)集為X={(xi,yi)|i=1,2,…,total},其中樣本xi(i=1,2,…,total)用d維特征向量xi=(xi1,xi2,…,xid)來表示,xi1,xi2,…,xid分別對(duì)應(yīng)d個(gè)描述屬性A1,A2,…,Ad的具體取值;yi(i=1,2,…,total)表示樣本xi的類標(biāo)號(hào),假設(shè)要研究的分類問題含有m個(gè)類別,則yi∈{c1,c2,…,cm}。在創(chuàng)建根結(jié)點(diǎn)時(shí),數(shù)據(jù)集X是最初給定的所有數(shù)據(jù),在創(chuàng)建內(nèi)部結(jié)點(diǎn)時(shí),數(shù)據(jù)集X是上層結(jié)點(diǎn)的某個(gè)分枝對(duì)應(yīng)的數(shù)據(jù)集。
假設(shè)nj是數(shù)據(jù)集X中屬于類別cj的樣本數(shù)量,則各類別的先驗(yàn)概率為P(cj)=nj/total,j=1,2,…,m。對(duì)給定數(shù)據(jù)集X分類所需的期望信息為:

設(shè)描述屬性Af(f=1,2,…,d)具有q個(gè)不同的取值{a1f,a2f,…,aqf},利用描述屬性Af可以將數(shù)據(jù)集X劃分為q個(gè)子集{X1,X2,…,Xq},其中Xs(s=1,2,…,q)中的樣本在Af上具有相同的取值asf。設(shè)ns表示子集Xs中的樣本數(shù)量,njs表示子集Xs中屬于類別cj的樣本數(shù)量。則由描述屬性Af劃分?jǐn)?shù)據(jù)集X所得的熵為:

其中,pjs=njs/ns表示在子集Xs中類別為cj的數(shù)據(jù)樣本所占的比例。則利用描述屬性Af(f=1,2,…,d)劃分?jǐn)?shù)據(jù)集時(shí)的信息增益為:

選擇具有最高信息增益的描述屬性作為給定數(shù)據(jù)集X的分枝屬性,從而創(chuàng)建決策樹中的一個(gè)結(jié)點(diǎn),并且根據(jù)該描述屬性的不同取值再創(chuàng)建分枝,之后對(duì)各分枝中的樣本子集遞歸調(diào)用上述方法建立該結(jié)點(diǎn)的各個(gè)子結(jié)點(diǎn)。當(dāng)某個(gè)分枝上的所有數(shù)據(jù)樣本都屬于同一個(gè)類別時(shí)劃分停止,形成葉結(jié)點(diǎn);或者當(dāng)某個(gè)分枝上的樣本不屬于同一個(gè)類別,但是又沒有剩余的描述屬性可以進(jìn)一步劃分?jǐn)?shù)據(jù)集時(shí)也形成葉結(jié)點(diǎn),并且用多數(shù)樣本所屬的類別來標(biāo)記這個(gè)葉結(jié)點(diǎn)。
本文采用2020學(xué)年度20電子班“C語言程序設(shè)計(jì)”課程教學(xué)中學(xué)生的課程學(xué)習(xí)數(shù)據(jù)以及期末考試成績數(shù)據(jù)作為樣本數(shù)據(jù),每一個(gè)樣本數(shù)據(jù)的描述屬性包括學(xué)號(hào)、姓名、出勤率、課堂互動(dòng)、小組討論、課后作業(yè)、PTA平臺(tái)程序設(shè)計(jì),其中學(xué)號(hào)和姓名不作為構(gòu)造決策樹的屬性,分類類別為期末成績,包括3個(gè)類別,分別是良好(80~100分)、中等(60~79分)和不合格(0~59分)。表1給出了部分樣本數(shù)據(jù)的描述屬性和類別標(biāo)記。

表1 部分樣本數(shù)據(jù)
對(duì)于出勤率,0表示滿,1表示不滿;對(duì)于課堂互動(dòng),0表示積極,1表示不積極;對(duì)于小組討論,0表示積極,1表示不積極;對(duì)于課后作業(yè),0表示優(yōu),1表示良,2表示中;對(duì)于PTA平臺(tái)程序設(shè)計(jì),0表示優(yōu),1表示良,2表示中;對(duì)于期末成績,80~100表示良好, 60~79表示中等,0~59表示不合格。例如,邏輯化后,學(xué)號(hào)1的數(shù)據(jù)可以表示為{0,0,0,0,0,”良好”}。
本文采用java語言實(shí)現(xiàn)該算法,主要包括以下幾個(gè)方法:
Object[][] createDataSet():建立樣本數(shù)據(jù)集
double calcShannonEnt(Object[][] dataSet):計(jì)算對(duì)訓(xùn)練集分類所需的期望信息
int chooseBestFeatureToSplit(Object dataSet[][]):求信息增益最大的描述屬性
Object createTree(Object dataSet[][], String labels[]):構(gòu)造決策樹[5]
String classify(HashMap
根據(jù)表1給定的樣本數(shù)據(jù)構(gòu)造決策樹,運(yùn)行結(jié)果如圖1所示。

圖1 構(gòu)造決策樹運(yùn)行結(jié)果
該運(yùn)行結(jié)果對(duì)應(yīng)的決策樹如圖2所示。

圖2 運(yùn)行結(jié)果對(duì)應(yīng)的決策樹
當(dāng)給定的未知分類的數(shù)據(jù)為{1,1,1,2,2},采用上述決策樹進(jìn)行分類,運(yùn)行結(jié)果如圖3所示。

圖3 采用決策樹進(jìn)行分類的結(jié)果
本文采用2020學(xué)年度“C語言程序設(shè)計(jì)”課程教學(xué)中學(xué)生的課程學(xué)習(xí)數(shù)據(jù)以及期末考試成績數(shù)據(jù)作為樣本數(shù)據(jù),采用決策樹分類算法構(gòu)造決策樹分類器,并利用該決策樹分類器對(duì)2021學(xué)年度“C語言程序設(shè)計(jì)”課程前期階段學(xué)生的學(xué)習(xí)數(shù)據(jù)進(jìn)行分類,對(duì)分類結(jié)果為不合格的學(xué)生有針對(duì)性地進(jìn)行重點(diǎn)關(guān)注和課程知識(shí)點(diǎn)專項(xiàng)輔導(dǎo),同時(shí)根據(jù)分類結(jié)果,對(duì)課程的教學(xué)方案進(jìn)行適當(dāng)調(diào)整,最終2021學(xué)年度“C語言程序設(shè)計(jì)”課程取得了優(yōu)異的教學(xué)效果,學(xué)生通過率達(dá)到98%,成績優(yōu)秀率達(dá)到90%。