李 志
(中國人民警察大學,河北 廊坊 065000)
隨著信息技術的迅速發展和互聯網技術的廣泛應用,移動互聯、大數據、云計算等新技術迅速崛起并逐步融入人們的學習、生活和工作。近年來,微課、慕課、私播課、翻轉課堂、雨課堂等新的教學形式迅速興起,掀起了高校在線教育改革的新浪潮。
目前,各高校均已開設計算機類公共基礎課程,對該課程的重視程度越來越高。由于全國各地經濟文化發展還很不平衡,城鄉教育存在不容忽視的差距,對信息技術課程的重視程度不一,致使高校新生的計算機水平參差不齊。學生之間的個體差異,為計算機教學帶來很大困難,各高校對計算機分級教學的呼聲越來越高,國內許多高校也陸續對計算機分級教學進行了有益嘗試。然而,由于傳統教學形式的限制,課上授課、討論,課下練習等一系列學習過程依然需要遵循教師的時間安排進行,無法把時間和學習的自主性真正交還給學生。慕課的興起,為分級教學提供了更加靈活的空間,為實現真正的“因材施教”提供了可能。
慕課是一種特定的在線課程,其以靈活、獨特的方式,為計算機教學尤其是計算機分級教學,注入了新鮮的活力。慕課既解決了教學條件受限的問題,也可以實現學習者的個性化學習,從而擺脫傳統課堂教學進度的束縛,便于差異化教學的實施。
分級教學按教學過程分為學生分級、教學目標分級、評價分級等。其中,學生分級的客觀性和有效性,是分級教學成功實施的重要前提。慕課平臺環境下,問卷、學習過程、測試等數據采集便利,為利用數據挖掘技術進行學生分級提供可能。
決策樹方法是用于分類和預測的重要技術。1986年,J.Ross.Quinlan提出的ID3算法,是最經典的決策樹挖掘算法,并為后來許多決策樹其他算法的研究和改進打下理論基礎[1]。
ID3決策樹算法引入了信息論中的一些概念,將信息熵和信息增益作為選擇測試屬性的標準,通過決策樹內部結點各個屬性間信息增益的比較,自頂而下,遞歸建立樣本數據集的決策樹,以用來對未知的數據集進行分類。
熵是物理學中的一個名詞,常用來表示某些物質系統狀態的一種度量。信息熵是信息論中的概念,稱為平均信息量,指信息的不確定性,是對被傳送的信息進行度量所采用的一種平均值。
設S是具有k個樣本數據的集合,S中的類別屬性共有m個不同的取值,可以將S分為m個不同類,即Ci(i=1,2,…,m)。設si是S中屬于類Ci的樣本數據數,則對于樣本集合S分類所需的信息熵為:
條件熵也叫作期望熵。假設S樣本集合中屬性X共有n個不同的取值,可以將S分為n個不同的子集,即Cj(j=1,2,…,n)。設sj是S中屬性X取值為Xj的樣本數據數,則屬性A的條件熵為:
信息增益用來度量屬性劃分樣本數據集所帶來的信息或者信息熵的有效減少量值,根據它能夠確定在什么層次上選擇什么樣的變量來分類,以此為依據構建樹。
S樣本集合中屬性X的信息增益為:
Gain(X)=I(s1,s2,…,sm)-E(X)
ID3算法選擇信息增益最大的屬性為決策樹的根結點,使得對結果劃分中的樣本分類所需信息量最小。然后,使用遞歸的方法確定其他分支,直到構建出整棵決策樹。在決策樹中每一個非葉子結點對應著一個非類別屬性,這個屬性不同的值分別為下一級樹枝。在下一級再對其他屬性進行信息增益的計算,以確定下一級分類結點,最終都到葉子結點結束。一個葉子結點代表一個分類結果,其從根結點到該葉子結點之間的路徑記錄著所屬的類別。
ID3決策樹算法的流程如圖1所示。
ID3決策樹算法通過圖1中步驟的不斷循環,對決策樹逐步求精,直到找到一個完全正確的決策樹為止。該算法構造的決策樹,整體看起來從頂向下形成一組類似于IF…THEN的規則。ID3算法的原始程序只能區分兩個類別的數據,即布爾值真或假。隨著算法的完善和發展,目前該算法允許用于多個類別的決策。
ID3算法自誕生以來,作為一種經典算法經久不衰。ID3算法按人們處理事情的常規辦法,自頂而下、從簡單到復雜建立決策樹。該算法從一顆空樹開始,遞歸選擇最大信息增益屬性構造當前結點,最終搜索到一棵能正確分類數據集的決策樹。ID3算法基礎理論清晰、方法簡單、決策樹易于構造、學習能力較強,是獲取知識的有用工具,也是數據挖掘和機器學習領域中的一個好的范例[2]。

圖1 ID3算法流程
但是,ID3算法也有缺陷。首先,由于ID3算法以信息增益作為分裂屬性選擇標準,偏向于選擇取值較多的屬性,但是該屬性并不一定是最優的屬性,某些情況下,這類屬性并不能提供太多有價值的信息。其次,ID3算法只能處理離散型的屬性,而不適合處理連續型的屬性,因此,在分類前必須對連續型的屬性進行離散化。再次,ID3算法中用到的訓練集中正反例的比例應該與實例中的比例一致。
由于ID3決策樹算法存在多值偏向的缺陷,因此,當用于決策樹的屬性過多時,可能會造成其算法過于繁雜甚至無效。關聯規則的應用,可以從樣本事務數據庫中找出與分類屬性關聯最為緊密的屬性集,同時將這些屬性作為待選屬性應用到ID3決策樹中。這樣,可以快速有效地篩選無關屬性,盡量避免ID3算法多值偏向造成的復雜性和無效性。
以選報“計算機基礎應用”慕課課程的普通本科學生172人,成人本科學生303人相關信息為研究對象。其中,將普通本科學生172人、成人本科學生200人相關信息作為樣本數據庫,成人本科學生103人相關信息留作測試數據庫。目標是希望通過對樣本數據庫中篩選信息完整、分級效果良好學生的摸底成績、調查問卷進行分析,結合學生自我分級意愿,借助關聯規則,選取用于學生分級的關鍵元素,建立決策樹,以指導今后計算機分級教學慕課中的學生分級,并以測試數據庫檢驗該分級模型。
數據的采集來源于5部分:(1)摸底測試,由考試系統直接生成,包含選擇、判斷、打字、Windows基本操作、Word、Excel、PowerPoint、網絡和E-mail幾部分。(2)新生計算機水平調查問卷,由慕課平臺發布并收集,包括籍貫、家庭情況、計算機學習情況、計算機技能掌握情況、計算機技能拓展情況、上網情況、興趣判斷、入學前工作性質、入學前最高學歷、是否大學生入伍、是否計算機相關專業等信息[3]。(3)學生在對自己基礎能力認知的前提下提出的分級意愿,同樣由慕課平臺發布并收集。(4)分級實施后,登記確定的分級結果。(5)最終結課考試,由考試系統直接生成。
采集到的原始數據往往存在數據不完整、含有噪聲、不一致等問題,因此不能直接用于數據挖掘,需要對原始數據進行預處理,以保證用于挖掘的數據準確性,提高數據挖掘的精度。
2.3.1 數據清理
由于成績數據來源于考試系統,而其他數據多通過慕課平臺采集,從一定程度上避免了原始數據的不一致性。因此,數據清理的主要任務是解決數據中空缺值的問題。
某些學生因故未能參加摸底測試或結課考試,此時可以采用忽略元組的方法將成績表中缺失成績的記錄予以刪除。新生計算機水平調查問卷由教師組織,學生自主填寫,可能會存在學生對某些項出現理解偏差或者理解不了的情況,也可能出現漏填等情況。缺少多個屬性值的記錄,在很大程度上失去了挖掘的意義,可以直接予以刪除。而對于缺少個別屬性值的記錄,可以選擇該屬性中最可能的值進行填充、完善。
2.3.2 數據集成
數據集成的過程是合并多個數據源中的數據并將其置于一個一致的數據存儲中。從集成后的數據集中選擇與挖掘有關的數據,可以在確保數據語義完整和正確的前提下,適當降低數據量的大小,直接提高挖掘效率。
所有數據表中均有“學號”和“姓名”字段,但這兩個字段對挖掘過程沒有任何意義,只是起到對記錄進行標識的作用。分級教學主要針對總分進行分級,因此在摸底成績表和結課成績表中,只對總分進行挖掘分析。
5個數據表中,前4個數據表主要用于決策的生成過程,而最后一個數據表主要用于篩選樣本數據集。雖然結構比較相似,但其目的和對象均不完全相同,因此不應在此將多個數據表進行合并,應在去除字段屬性的冗余、完成數據離散化后,將其置于一個數據庫中,待應用具體算法前再根據需要進行合并。
2.3.3 數據離散化
數據離散化就是將屬性值劃分為區間,在進行分析時使用區間的標號代替實際數據的處理方法。數據離散化主要是為數據挖掘服務的,通過數據離散化技術可以減少連續屬性值的個數[4],簡化數據,最終目的是使數據挖掘結果更加簡潔和易于理解,減少系統開銷。
在摸底成績表中,將總分以50分和70分為界線分為三段,即[0,50),[50,70),[70,100]。
對入學前工作性質進行匯總整理,根據工作性質與計算機接觸幾率分析,將入學前工作性質分成“計算機相關”和“計算機無關”。為簡化算法,進一步將其抽象為邏輯變量“計算機相關工作”,其值分別取Y或N。
為避免ID3算法多值偏向造成的復雜性和無效性,利用關聯規則篩選無關屬性,提取用于決策樹的屬性共4個,分別為:計算機相關專業、通過計算機等級考試、自我興趣判斷及計算機相關工作且大學生入伍。部分數據記錄如表1所示。
2.4.1 分類屬性信息熵
統計得知,分類屬性“分級”共200條記錄,值為“A”的有45條記錄,值為“B”的有110條記錄,值為“C”的有45條記錄。因此,分類屬性“分級”的信息熵為:
2.4.2 各條件熵
2.4.2.1 計算機相關工作且大學生入伍屬性的熵
計算機相關工作且大學生入伍屬性包括“Y”“N”兩種取值。

表1 決策樹樣本數據集部分數據
計算機相關工作且大學生入伍為“N”的熵為:
計算機相關工作且大學生入伍屬性的熵為:
E(計算機相關工作且大學生入伍)
2.4.2.2 計算機相關專業屬性的熵
計算機相關專業屬性包括“Y”“N”兩種取值。
計算機相關專業為“Y”的熵為:
計算機相關專業為“N”的熵為:
計算機相關專業屬性的熵為:
當李莉把交了兩個月租金的出租屋讓給許峰,自己投奔梅子的時候,梅子指著她的腦袋痛心疾首:“世界上最傻的女人就是你,許峰那個白眼狼,一看就是個攀高枝的。他騙你騙得高段啊,你走得那個順溜啊。”

2.4.2.3 通過計算機等級考試屬性的熵
通過計算機等級考試屬性包括“Y”“N”兩種取值。
通過計算機等級考試為“Y”的熵為:
通過計算機等級考試為“N”的熵為:
通過計算機等級考試屬性的熵為:

2.4.2.4 自我興趣判斷屬性的熵
自我興趣判斷屬性包括“A”“B”“C”三種取值。
自我興趣判斷為“A”的熵為:
自我興趣判斷為“B”的熵為:
自我興趣判斷為“C”的熵為:
自我興趣判斷屬性的熵為:

2.4.3 各屬性信息增益
Gain(計算機相關工作且大學生入伍)=1.4428-1.3904=0.0524
Gain(計算機相關專業)=1.4428-1.4027=0.0401
Gain(通過計算機等級考試)=1.4428-1.3716=0.0712
Gain(自我興趣判斷)=1.4428-1.3353=0.1075
由此可以得出,自我興趣判斷屬性的信息增益最大,可選擇該屬性作為決策樹的根結點。
2.4.4 生成決策樹
依次進行一級、二級、三級分支結點的計算,得到決策樹如圖2所示。

圖2 初步生成分級教學決策樹
2.4.5 完善決策樹
為降低ID3算法多值偏向,計算前對訓練數據集中各屬性進行了簡化,因此,其得出的決策樹并未完成對所有記錄的分級。此時,需要借助最簡單的分數分級方法繼續完善得到的決策樹。完善后的決策樹如圖3所示。
慕課的開設,使大規模授課成為可能。隨著選報人數的增多,用于學生分級的數據激增,也更具有多樣性和復雜性。決策樹的應用,可以將教師從大量數據分析工作中解放出來,以更充沛的精力投入教學,同時保證了分級的客觀性和有效性。當然,學生的分級僅僅是分級教學的第一步,還涉及到教學模式、教學方法、教學目標、教學評價等的分級。數據挖掘在分級教學中的應用也不僅限于學生的分級,還可以用于教學動態分析、個性化教學策略、教學效果評價等方面。

圖3 完善后最終生成決策樹