楊麗萍,郭宏升
(1.包頭師范學(xué)院信息科學(xué)與技術(shù)學(xué)院,內(nèi)蒙古包頭,014030;2.包頭師范學(xué)院政治與法律學(xué)院,內(nèi)蒙古包頭,014030)
近年來,隨著教育系統(tǒng)對大數(shù)據(jù)應(yīng)用的不斷探討,大數(shù)據(jù)對高校教師教學(xué)與管理的支持日益加強,同時,在高校教育管理中,人們深刻認識到大數(shù)據(jù)在管理與決策中的重要作用,不再依賴于傳統(tǒng)意義上的經(jīng)驗管理和直覺推斷。大數(shù)據(jù)可以深度挖掘教育教學(xué)數(shù)據(jù)中的隱藏信息,發(fā)現(xiàn)教育過程中存在的問題和關(guān)鍵點,提供決策來優(yōu)化教育管理。
利用大數(shù)據(jù)分析技術(shù)可以系統(tǒng)全面地整合學(xué)生的行為數(shù)據(jù),對課堂教學(xué)實現(xiàn)全面的評價與分析。教師通過對學(xué)生行為相關(guān)的海量數(shù)據(jù)進行分析,可以發(fā)現(xiàn)學(xué)生的學(xué)習(xí)行為之間的關(guān)聯(lián)關(guān)系,以及學(xué)習(xí)行為與學(xué)習(xí)結(jié)果之間的關(guān)聯(lián)關(guān)系,從而對學(xué)生的學(xué)習(xí)成績、課堂表現(xiàn)、知識掌握情況進行預(yù)測與評估,制定更為合理的教學(xué)方案,對有個性化需要的學(xué)生提供幫助。
決策樹是一類常見的機器學(xué)習(xí)方法,是對訓(xùn)練集中數(shù)據(jù)表現(xiàn)出的屬性進行總結(jié)分類,為表現(xiàn)出來的屬性找到一個確切的描述與分類的模型,由該模型可以對未來不可預(yù)測的數(shù)據(jù)進行分類[1]。決策樹分類算法是以給定數(shù)據(jù)樣本為基礎(chǔ)的歸納學(xué)習(xí)方法。在給定已知類標號的數(shù)據(jù)集的情況下,采用自頂向下的遞歸方式產(chǎn)生一棵樹結(jié)構(gòu)[2]。樹的最頂層結(jié)點稱為根結(jié)點,最底層結(jié)點稱為葉結(jié)點,每個葉結(jié)點代表樣本的類別。根結(jié)點和葉結(jié)點之間的結(jié)點稱為內(nèi)部結(jié)點。決策樹分類算法首先選擇具有最高信息增益的描述屬性作為給定數(shù)據(jù)集的分支屬性,從而創(chuàng)建決策樹中的一個結(jié)點,并且根據(jù)該描述屬性的不同取值再創(chuàng)建分支,之后對各分支中的樣本子集遞歸調(diào)用上述方法建立該結(jié)點的各個子結(jié)點[3]。當某個分支上的所有數(shù)據(jù)樣本都屬于同一個類別時劃分停止,形成葉結(jié)點;或者當某個分支上的樣本不屬于同一個類別,但是又沒有剩余的描述屬性可以進一步劃分數(shù)據(jù)集時也形成葉結(jié)點,并且用多數(shù)樣本所屬的類別來標記這個葉結(jié)點。對未知類標號的數(shù)據(jù)樣本進行分類時,從根結(jié)點開始逐層向下判斷,直到葉結(jié)點,就可以得到該數(shù)據(jù)樣本的類標號。
假設(shè)給定的數(shù)據(jù)集為X={(xi,yi)|i=1,2,…,total},其中樣本xi(i=1,2,…,total)用d維特征向量xi=(xi1,xi2,…,xid)來表示,xi1,xi2,…,xid分別對應(yīng)d個描述屬性A1,A2,…,Ad的具體取值;yi(i=1,2,…,total)表示樣本xi的類標號,假設(shè)要研究的分類問題含有m個類別,則yi∈{c1,c2,…,cm}。在創(chuàng)建根結(jié)點時,數(shù)據(jù)集X是最初給定的所有數(shù)據(jù),在創(chuàng)建內(nèi)部結(jié)點時,數(shù)據(jù)集X是上層結(jié)點的某個分枝對應(yīng)的數(shù)據(jù)集。
假設(shè)nj是數(shù)據(jù)集X中屬于類別cj的樣本數(shù)量,則各類別的先驗概率為P(cj)=nj/total,j=1,2,…,m。對給定數(shù)據(jù)集X分類所需的期望信息為:
設(shè)描述屬性Af(f=1,2,…,d)具有q個不同的取值{a1f,a2f,…,aqf},利用描述屬性Af可以將數(shù)據(jù)集X劃分為q個子集{X1,X2,…,Xq},其中Xs(s=1,2,…,q)中的樣本在Af上具有相同的取值asf。設(shè)ns表示子集Xs中的樣本數(shù)量,njs表示子集Xs中屬于類別cj的樣本數(shù)量。則由描述屬性Af劃分數(shù)據(jù)集X所得的熵為:
其中,pjs=njs/ns表示在子集Xs中類別為cj的數(shù)據(jù)樣本所占的比例。則利用描述屬性Af(f=1,2,…,d)劃分數(shù)據(jù)集時的信息增益為:
選擇具有最高信息增益的描述屬性作為給定數(shù)據(jù)集X的分枝屬性,從而創(chuàng)建決策樹中的一個結(jié)點,并且根據(jù)該描述屬性的不同取值再創(chuàng)建分枝,之后對各分枝中的樣本子集遞歸調(diào)用上述方法建立該結(jié)點的各個子結(jié)點。當某個分枝上的所有數(shù)據(jù)樣本都屬于同一個類別時劃分停止,形成葉結(jié)點;或者當某個分枝上的樣本不屬于同一個類別,但是又沒有剩余的描述屬性可以進一步劃分數(shù)據(jù)集時也形成葉結(jié)點,并且用多數(shù)樣本所屬的類別來標記這個葉結(jié)點。
本文采用2020學(xué)年度20電子班“C語言程序設(shè)計”課程教學(xué)中學(xué)生的課程學(xué)習(xí)數(shù)據(jù)以及期末考試成績數(shù)據(jù)作為樣本數(shù)據(jù),每一個樣本數(shù)據(jù)的描述屬性包括學(xué)號、姓名、出勤率、課堂互動、小組討論、課后作業(yè)、PTA平臺程序設(shè)計,其中學(xué)號和姓名不作為構(gòu)造決策樹的屬性,分類類別為期末成績,包括3個類別,分別是良好(80~100分)、中等(60~79分)和不合格(0~59分)。表1給出了部分樣本數(shù)據(jù)的描述屬性和類別標記。
表1 部分樣本數(shù)據(jù)
對于出勤率,0表示滿,1表示不滿;對于課堂互動,0表示積極,1表示不積極;對于小組討論,0表示積極,1表示不積極;對于課后作業(yè),0表示優(yōu),1表示良,2表示中;對于PTA平臺程序設(shè)計,0表示優(yōu),1表示良,2表示中;對于期末成績,80~100表示良好, 60~79表示中等,0~59表示不合格。例如,邏輯化后,學(xué)號1的數(shù)據(jù)可以表示為{0,0,0,0,0,”良好”}。
本文采用java語言實現(xiàn)該算法,主要包括以下幾個方法:
Object[][] createDataSet():建立樣本數(shù)據(jù)集
double calcShannonEnt(Object[][] dataSet):計算對訓(xùn)練集分類所需的期望信息
int chooseBestFeatureToSplit(Object dataSet[][]):求信息增益最大的描述屬性
Object createTree(Object dataSet[][], String labels[]):構(gòu)造決策樹[5]
String classify(HashMap
根據(jù)表1給定的樣本數(shù)據(jù)構(gòu)造決策樹,運行結(jié)果如圖1所示。
圖1 構(gòu)造決策樹運行結(jié)果
該運行結(jié)果對應(yīng)的決策樹如圖2所示。
圖2 運行結(jié)果對應(yīng)的決策樹
當給定的未知分類的數(shù)據(jù)為{1,1,1,2,2},采用上述決策樹進行分類,運行結(jié)果如圖3所示。
圖3 采用決策樹進行分類的結(jié)果
本文采用2020學(xué)年度“C語言程序設(shè)計”課程教學(xué)中學(xué)生的課程學(xué)習(xí)數(shù)據(jù)以及期末考試成績數(shù)據(jù)作為樣本數(shù)據(jù),采用決策樹分類算法構(gòu)造決策樹分類器,并利用該決策樹分類器對2021學(xué)年度“C語言程序設(shè)計”課程前期階段學(xué)生的學(xué)習(xí)數(shù)據(jù)進行分類,對分類結(jié)果為不合格的學(xué)生有針對性地進行重點關(guān)注和課程知識點專項輔導(dǎo),同時根據(jù)分類結(jié)果,對課程的教學(xué)方案進行適當調(diào)整,最終2021學(xué)年度“C語言程序設(shè)計”課程取得了優(yōu)異的教學(xué)效果,學(xué)生通過率達到98%,成績優(yōu)秀率達到90%。