摘要:數據挖掘就是從海量的數據中挖掘出可能有潛在價值的信息的技術。決策樹方法是一種典型的分類算法,首先對數據進行處理,利用歸納算法生成可讀的規則和決策樹模型,然后使用決策樹模型對新數據進行分析。該文以大學生專業方向指導輔助系統的開發過程為實例從理論上論述了數據挖掘的概念、數據挖掘研究內容和本質以及進行數據挖掘的主要方法,講述了使用MATLAB 7.0開發實現決策樹算法子系統的方法和實現,并且對生成的決策樹模型進行分析。
關鍵詞:數據挖掘;分類;決策樹;大學生專業指導
中圖分類號:TP301文獻標識碼:A文章編號:1009-3044(2010)03-753-02
Undergraduate's Major Guidance System: Implementation of Decision Tree Algorithm
DUAN Ying-jie
(Changzhou Liu Guo-jun Vocational Technology College, Changzhou 213003, China)
Abstract: Data mining is a technology that finds information with potential value from a large number of data. The decision tree method is a kind of typical classification algorithm, that processes data, generates readable rules and a decision tree model, and then analyses new data following the decision tree model. As an instance, the process of developing undergraduates' major guidance system is introduced in this paper. The paper tells basic knowledge of concepts, contents, essence, and main methods of data mining, narrates in detail the method and implementation of decision tree algorithm by MATLAB 7.0, and analyses the decision tree model in this application.
Key words: data mining; classification; decision tree; undergraduates' major guidance
隨著高校的成長和規模的擴大,在高校內都積累了大量的與學生資源相關的數據。在這些海量的數據的背后隱藏著許多重要的模式和知識??焖?、準確、高效地將這些模式和知識挖掘出來,是高校提高學生資源管理水平和增強學校競爭力的一個重要手段。我們可以利用數據挖掘技術從海量數據中發現有價值的信息,幫助管理者通過對學生學習成績的分析和研究,了解和掌握學生的學習情況、需求、能力等,及時調整學習計劃,對學生專業方向選擇做出預測性的指導,從而為制訂人才需求規劃、人才培養提供比較客觀的決策支持。
1 決策樹分類數據挖掘系統建立和應用的一個典型過程
決策樹分類挖掘技術應用于大學生專業方向輔助指導中,可以通過對學生各科學習成績信息的分析,預測該學生所屬的專業類別,從而采取相應的教學計劃,這樣能夠提高學校的教學水平,避免學生的流失;還可以通過最小的教師資源投入獲得最大的收益。
下面,我們以計算機系為例,具體討論一下計算機系的學生的具體專業方向。
計算機學科的專業方向具體可以劃分為以下三個方面:
1) 計算機軟件專業;
2) 計算機網絡專業;
3) 計算機硬件專業。
決策樹方法是利用信息論中的信息增益尋找數據庫中具有最大信息量的屬性字段,建立決策樹的一個結點,再根據該屬性字段的不同取值建立樹的分支,并在每個分支子集中重復建立樹的下層結點和分支的過程。在對學生進行專業分類分析的過程中,決策樹分類數據挖掘系統建立和應用的一個典型過程是:
首先,根據學生的專業分類的標準,對學生所屬的專業進行劃分,這樣,每個現有的學生都具有一個確定的專業類別。
其次,根據歷史數據,主要是學生的各科學習成績數據和學生的專業分類數據,執行決策樹生成算法,生成一棵決策樹。
最后,在以上過程執行完畢后,當一個新的學生信息數據進入時,管理者可以在系統中調用決策樹模塊,根據學生的具體信息數據來預測學生所屬的專業類別。
2 系統實施的具體步驟
2.1 數據的收集和整理
數據的收集整理對于任何數據挖掘來說都是必不可少的,雖然對于不同的算法來說,收集數據的途徑是差不多的,但是整理方式卻大不一樣。整個數據的收集和整理可以大體分為數據的選擇,數據的預處理,數據的縮減三個步驟。數據挖掘的算法決定了整理的方式,整理結果形式上可以是一個表也可以是多個表,但最終要便于進行數據挖掘,內容上要與數據挖掘的目標一致,這是很明顯的。數據庫技術的廣泛使用,使得現在大量的數據是使用表的形式存放的,因此數據的整理體現在對表中的數據進行處理。
首先,對訓練表中的屬性進行選擇。根據在校學生各科的學習成績信息,我們將基礎課程和專業基礎課程作為訓練表中的非類別屬性也就是條件屬性,而將專業課程作為確定類別屬性也就是分類屬性的依據。如果非類別屬性中存在重復屬性則取平均值后保留為一個屬性,并剔除了成績表中與專業發展方向無顯著相關性的屬性如體育等課程屬性。類別屬性值通過將專業課程歸類后取平均,再求得最大值后確定,即:對某一記錄,硬件專業平均分為72,軟件專業平均分為69,網絡專業平均分為82,則該記錄確定為網絡專業,賦給屬性的值為2。2代表網絡專業,1代表軟件專業,3代表硬件專業。
其次,對訓練表中的每一列屬性的值進行規范化和離散化處理??紤]到教師的評分標準存在普遍偏高或偏低的情況,我們利用下面公式進行數據規范化處理:
y=(100*(x-min))/(max-min)
x是表中原始數據,max是本屬性列中屬性值最大的值,min是本屬性列中屬性值最小的值,得到規范化后的數據y。再將數據y進行離散化處理。若y∈[0 ,20] 則 y=1,若y∈[21,40] 則y=2,若y∈[41,60] 則y=3,若y∈[61,80] 則y=4,若y∈[81,100] 則y=5。
經過上述的工作之后,整個表就只是包含了影響專業發展方向的關鍵因素的條件屬性和分類屬性。為了能在以后的工作中使用數據更方便,我們將分類屬性提取出來,單獨存放在一張表中。
2.2 選取訓練實例集
我們從經過數據整理得到的樣本數據中進行抽樣,將抽樣數據作為訓練集輸入。
2.3 采用“分裂的優良性度量”來產生決策樹的每一級節點
使用“分裂的優良性度量”來選擇每一級最佳分類字段,當出現以下三種情形之一時可以停止分類:
1) 一個結點上的數據都是屬于同一類別;
2) 沒有剩余屬性可以再對數據樣本進行分割;
3) 分枝沒有訓練樣本。
3 決策樹模型準確度分析
本挖掘系統主要是通過決策樹ID3算法生成可讀的規則和決策樹模型,然后使用已經得到的決策樹模型對預測集里的每一條記錄,從樹的根結點開始,向下找出該記錄所屬的類。因此,整個決策樹挖掘子系統測試數據的準確度在很大程度上取決于已經建立的這個決策樹模型。
通過測試,我們發現這個決策樹模型的準確度較一般。
影響決策樹模型準確度的因素有多方面,通過對本系統的決策樹模型分析,我們可以發現目前存在于本挖掘系統中,影響模型準確度的一些主要因素:
3.1 挖掘庫中數據記錄的有限性
通過數據收集,我們得到以電子表格形式存儲的數據記錄為205條,經過數據整理之后,我們實際可以使用的數據記錄為173條,由于在系統實現過程中,我們還需要預留一部分數據進行數據分析準確度測試,因此,在放入訓練數據集進行決策樹模型生成訓練的實際數據記錄為150條。而使用決策樹ID3方法對于越大的數據庫使用效果越好,由于本次數據挖掘使用的挖掘庫中的數據記錄存在有限性,使得對ID3方法的使用效果產生影響。
3.2 數據預處理工作
通過對已經生成的決策樹模型的分析,我們發現在存放該模型的文件中出現了許多空訓練樣本集,盡管在程序設計的過程中已經使用語句if(~isempty(indices))和結束條件對訓練集為空的例子進行控制,但是,還是出現了大量的空例子。分析產生這種情況的主要原因之一是在數據預處理的過程中,對數據的處理不當造成的。我們最初對數據進行離散化處理時,用1 表示[0,59]之間的分數,用2表示[60,69]之間的分數,用3表示[70,79]之間的分數,用4表示[80,89]之間的分數,用5表示[90,100]之間的分數,對于考察科目的優、良、中、及格和不及格,我們分別對應用5、4、3、2、1來表示。而在實際應用中,存在這樣的情況:(1)由于教師的評分標準不同,導致學生的成績數據普遍偏高或者偏低;(2)數據表中學生每門課程的屬性值取值集中在{2,3,4},而對于屬性值取值{1,5}的數據記錄非常少。因此,我們在進行數據預處理工作的時候,應該考慮將1表示[0,69]之間的分數,用2表示[70,79]之間的分數,用3表示[80,100]之間的分數,對于考察科目的優、良、中、及格和不及格,也可以將等級為優與良的屬性取值合并為3,等級為及格和不及格的屬性值合并為1,分別對應用3、2、1來表示。
通過上述分析,我們找到了影響本挖掘系統建立的決策樹模型準確度的一些主要因素。
參考文獻:
[1] Jiawei Han,Micheline Kamber.Data Mining Concepts and Techniques[M].北京:清華大學出版社,2003:20-105.
[2] 安淑芝.數據倉庫與數據挖掘[M].北京:清華大學出版社,2005:25-70.