邵文昭 張書強 王曉輝 張文新
(邯鄲職業(yè)技術(shù)學(xué)院 電子信息工程系,河北 邯鄲 056005)
高職院校的學(xué)生來自多種錄取類別。其中,計算機類的生源主要包含普招—理工、普招—文史、對口—計算機、單招等。對于大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)來說,由于其本身的學(xué)科特點,最主要的生源來自于普招—理工(以下簡稱普招)和對口—計算機(以下簡稱對口)兩種類別。在教學(xué)實踐中,我們發(fā)現(xiàn),這兩類學(xué)生入學(xué)之后的課程學(xué)習(xí)表現(xiàn)有所不同。我們猜測,這種不同可能源于這兩類學(xué)生在學(xué)習(xí)經(jīng)歷、成長經(jīng)歷、課程基礎(chǔ)等方面的差別。
為了更深入地發(fā)現(xiàn)錄取類別和課程學(xué)習(xí)表現(xiàn)之間的內(nèi)在聯(lián)系,我們使用數(shù)據(jù)統(tǒng)計和機器學(xué)習(xí)的方法建立了根據(jù)課程學(xué)習(xí)表現(xiàn)反推出學(xué)生錄取類別的分類模型。為了給分類模型提供訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù),我們使用pandas數(shù)據(jù)統(tǒng)計工具對邯鄲職業(yè)技術(shù)學(xué)院大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)2019級部分學(xué)生的錄取數(shù)據(jù)和成績表格進行了整理,并建立了數(shù)據(jù)集。我們的分類器以各科學(xué)習(xí)成績?yōu)樘卣?,以錄取類別為類標。
我們建立分類器是為了發(fā)現(xiàn)不同類別的學(xué)生在課程學(xué)習(xí)表現(xiàn)上的差異,而不是為了計算出學(xué)生的錄取類別。因此,我們使用了可解釋性很強的CART決策樹模型[1]。我們使用5折交叉驗證的方法測試了模型在不同深度、不同特征選擇準則(包括信息增益率和基尼系數(shù))下的分類正確率。實驗結(jié)果表明,6層深、使用信息增益率作為特征選擇準則的模型具有最高的驗證正確率。我們在確定模型的超參數(shù)之后使用全部數(shù)據(jù)集訓(xùn)練出了最終的模型,并將這個模型可視化。模型的可視化結(jié)果表明,在大學(xué)一年級第一學(xué)期的學(xué)習(xí)中,對口類學(xué)生在專業(yè)課的學(xué)習(xí)上優(yōu)勢較為明顯,而普招類學(xué)生在通識課的學(xué)習(xí)上有著一定的優(yōu)勢。在專業(yè)課程中,微機原理對學(xué)生類別的區(qū)分度較為明顯;在通識課中,大學(xué)生心理健康對學(xué)生類別的區(qū)分度較為明顯。據(jù)此,我們建議在大一上學(xué)期開設(shè)一門“大學(xué)計算機基礎(chǔ)”課程,或是在微機原理課程的主要內(nèi)容之前增加對大學(xué)計算機基礎(chǔ)知識的介紹,讓專業(yè)知識的學(xué)習(xí)曲線變得相對平緩。
我們使用的數(shù)據(jù)來自于四張Excel表格,包括邯鄲職業(yè)技術(shù)學(xué)院大數(shù)據(jù)技術(shù)與應(yīng)用2019-1班的19-20學(xué)年第一學(xué)期成績表、大數(shù)據(jù)技術(shù)與應(yīng)用2019-2班的19-20學(xué)年第一學(xué)期成績表、學(xué)生信息匯總表、招生數(shù)據(jù)表,通過對這四張表進行數(shù)據(jù)清洗、行列操作、表格連接、表格拼接,我們得到了以學(xué)號、姓名、總成績、各科成績?yōu)榱袑傩缘腄ataFrame二維表。我們以這個二維表作為數(shù)據(jù)集,這個數(shù)據(jù)集包含了兩個類別共63個樣本點。這些樣本包含了大數(shù)據(jù)技術(shù)與應(yīng)用2019-1班和2019-2班所有的普招—理工類學(xué)生和對口類學(xué)生,沒有經(jīng)過任何形式的人為篩選。我們的數(shù)據(jù)整理過程使用的是Python語言與Pandas庫。
決策樹模型是機器學(xué)習(xí)領(lǐng)域常用的一種監(jiān)督型學(xué)習(xí)模型,其結(jié)構(gòu)猶如一顆倒立的樹,由根節(jié)點、分支和葉子節(jié)點構(gòu)成,每個非葉節(jié)點使用一個特征對樣本進行分類。這類模型的優(yōu)勢之一是可解釋性很強。由于我們構(gòu)建分類器的主要目的是分析各類別學(xué)生的課程學(xué)習(xí)情況,并由此改進教學(xué)內(nèi)容和教學(xué)方法,我們選擇了具有很強可解釋性的決策樹模型。
本文的第二部分“數(shù)據(jù)的整理”當中描述了通過數(shù)據(jù)處理的方式建立數(shù)據(jù)集的過程。我們以二維表的各科成績和總成績?yōu)樘卣?、以考生類型為標簽,?gòu)建了用于建立決策樹的數(shù)據(jù)集。在這個過程中,我們選取了總成績以及各科成績作為特征,并選取了學(xué)生的錄取類別(普招和對口)作為類別標簽。使用各科成績作為特征,是為了考察不同類別的學(xué)生在不同課程上的表現(xiàn)。使用總成績作為特征,是為了考察不同類別學(xué)生的總成績是否存在著明顯差異。
我們將CART算法與C4.5算法相結(jié)合,即采用CART算法的二叉樹機制與C4.5算法的信息增益率。這樣一來,我們建立的就是采用信息增益率作為特征選擇準則的二叉決策樹。之所以采用了CART算法,是因為我們構(gòu)建的是以“理工”(指普招—理工)和“對口”作為類別標簽的二分類決策樹;之所以采用C4.5算法的信息增益率而不是CART算法的基尼系數(shù),是因為我們的數(shù)據(jù)集較小、維度較低。在這種情況下,基尼系數(shù)無法發(fā)揮其算法效率的優(yōu)勢,而其準確率又不如信息增益率。這一點,在本文的實驗中會有所體現(xiàn)。
為了確定分類器的節(jié)點分隔的依據(jù)、層數(shù)等超參數(shù),并且在確定超參數(shù)之后使用盡量多的數(shù)據(jù)訓(xùn)練模型,我們采取如下的方式建立分類器:
1.用交叉驗證的方式確定分類器的層數(shù)和特征選擇準則這兩個超參數(shù);
2.在確定了超參數(shù)之后,使用全部訓(xùn)練數(shù)據(jù)訓(xùn)練分類器模型。
我們建立的是決策樹分類器。如前文所示,我們使用的是CART決策樹,但在損失函數(shù)的選擇上嘗試使用了CART[2][3]的基尼系數(shù)和C4.5[4]的信息增益率[5]這兩種方法作為節(jié)點劃分的依據(jù),并且嘗試了不同的層數(shù)。為了得到更接近與最好效果的超參數(shù),我們使用了交叉驗證的方式。考慮到我們的數(shù)據(jù)集僅包含63條數(shù)據(jù),我們采用了五折交叉驗證的方式。由于我們的目的是得到一個能夠描述錄取類別和入學(xué)以后課程學(xué)習(xí)表現(xiàn)之間內(nèi)在聯(lián)系的工具,而不是建立一個用于區(qū)分錄取類別的模型,分類器在全部數(shù)據(jù)集上的表現(xiàn)也是我們所關(guān)注的。我們一共嘗試使用了8組超參數(shù),其五折驗證正確率和全部數(shù)據(jù)集作為訓(xùn)練集和驗證集得到的驗證正確率如表1所示。
表1 采用不同超參數(shù)的決策樹的交叉驗證正確率和使用全部數(shù)據(jù)集得到的正確率
表1收集了兩類正確率——交叉驗證的正確率和在全部數(shù)據(jù)集上訓(xùn)練得到的正確率,兩種之間采用“/”分隔。前者用于描述分類器的分類性能,后者則是描述分類器對數(shù)據(jù)集特征描述的精細程度。
理論上,我們還應(yīng)該實驗7層的決策樹。但由于我們的剪枝策略,決策樹的深度最多只能達到6層。因此,我們只實驗了深度為3,4,5,6的情況。
顯然,從分類性能的角度分析,我們采用的超參數(shù)為:使用信息增益率作為損失函數(shù),采用6層深度的決策樹(即不限制決策樹的深度);從對數(shù)據(jù)描述的精細程度的角度分析,我們采用的超參數(shù)為:采用6層深度的決策樹。綜合分類性能和精細程度,我們采用信息增益率為損失函數(shù),并且將決策樹的程度設(shè)置為6層(相當于不限制決策樹的層數(shù))。我們將這樣得到的決策樹可視化,如圖1所示。
圖 1 可視化的決策樹模型
圖1當中的每個框表示決策樹的一個節(jié)點,“class=對口”的意思是以對口為正類、普招為負類,value=[a,b]的意思是該節(jié)點所包含的正類和負類的樣本數(shù)分別為a和b,samples表示樣本數(shù),entropy表示該節(jié)點的信息熵。節(jié)點的顏色表示節(jié)點當中樣本的類別情況:藍色節(jié)點表示普招學(xué)生占多數(shù)的節(jié)點,橙色節(jié)點表示對口學(xué)生占多數(shù)的節(jié)點。顏色越深,信息熵越低,節(jié)點的“純度”越高。這里的信息熵采用C4.5算法當中的信息熵定義[4],如下所示:
其中,pi= P(X=xi),i= 1,2,...,n。這里的X是離散型隨機變量。
從圖1可視化的決策樹中,我們有如下發(fā)現(xiàn):
1.微機原理的成績與錄取類別之間具有很強的相關(guān)性。微機原理成績大于82分的學(xué)生均為對口類學(xué)生。這是因為對口類學(xué)生在入學(xué)時就有了一定的專業(yè)課基礎(chǔ),對計算機不陌生。而絕大多數(shù)普招類學(xué)生在入學(xué)前并沒有接觸過專業(yè)課。在這樣的情況下,普招類學(xué)生在初次接觸微機原理課程當中的運算器、控制器、存儲器等概念時很容易糊涂。
2.與微機原理不一樣的是,C語言程序設(shè)計的成績與錄取類別之間的相關(guān)性不明顯。這是因為C語言程序設(shè)計成績體現(xiàn)的主要是編程與邏輯思維能力,而不是對硬件的操作能力。即使這樣,這門課程的成績和錄取類別之間還是呈現(xiàn)出了一定的相關(guān)性。
3.大學(xué)生心理健康課程的成績與錄取類別之間也具有較強的相關(guān)性。在微機原理成績不超過82分的學(xué)生當中,大學(xué)生心理健康課程成績大于87分的絕大部分是普招類學(xué)生。這是因為大學(xué)生心理健康課程的考試采用的是筆試的方式,而這樣的考察方式顯然是相對有利于統(tǒng)招類考生的。
4.演講與口才的課程成績與錄取類別之間也存在較強的相關(guān)性,并且對口生在這門課的表現(xiàn)要好于普招生。這可能是因為剛?cè)雽W(xué)的對口生比剛?cè)雽W(xué)的普招生更善于社交和言語表達。
進一步,我們提出如下建議:
在大一上學(xué)期開設(shè)一門“大學(xué)計算機基礎(chǔ)”課程,或是在微機原理課程的主要內(nèi)容之前增加對大學(xué)計算機基礎(chǔ)知識的介紹,讓普招類學(xué)生在入學(xué)以后對計算機的中央處理器、存儲器、網(wǎng)絡(luò)、數(shù)字電路、程序、數(shù)據(jù)等概念有個基本的了解,這樣可以讓專業(yè)知識的學(xué)習(xí)曲線變得相對平緩,也更容易被學(xué)生們接受。
本文整理了邯鄲職業(yè)技術(shù)學(xué)院大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)2019級學(xué)生的錄取類別和大一上學(xué)期各科的學(xué)習(xí)成績,并通過機器學(xué)習(xí)的方法建立了用于發(fā)掘錄取類別和課程學(xué)習(xí)表現(xiàn)之間關(guān)系的決策樹模型。這個模型可以通過學(xué)生入學(xué)以后的課程學(xué)習(xí)表現(xiàn)反推出其錄取類別,并在測試集上取得了81.15%的正確率。這揭示了錄取類別和課程學(xué)習(xí)表現(xiàn)之間具有某種內(nèi)在聯(lián)系。通過可視化決策樹模型,我們分析了課程成績和錄取類別之間的關(guān)系,并有針對性地提出了課程設(shè)置和教學(xué)內(nèi)容方面的改進意見。
邯鄲職業(yè)技術(shù)學(xué)院學(xué)報2021年3期