
機器學習在各個領域都有廣泛的應用,特別在數據分析領域有著深遠的影響。決策樹是機器學習中最基礎且應用最廣泛的算法模型。本文介紹了機器學習的相關概念、常見的算法分類和決策樹模型及應用。通過一個決策樹案例,著重從特征選擇、剪枝等方面描述決策樹的構建,討論并研究決策樹模型評估準則。最后基于 R 語言和 SPSS 這兩個工具,分別設計與實現了決策樹模型的應用實例。
機器學習 (Machine Learning) 是近 20 多年興起的一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法復雜度理論等多門學科。
機器學習理論主要是設計和分析一些讓計算機可以自動學習的算法。機器學習算法是一類從數據中自動分析獲得規律,并利用規律對未知數據進行預測的算法。因為學習算法中涉及了大量的統計學理論,機器學習與統計推斷學聯系尤為密切,也被稱為統計學習理論。在算法設計方面,機器學習理論關注可以實現的、行之有效的學習算法。很多相關問題的算法復雜度較高,而且很難找到固有的規律,所以部分的機器學習研究是開發容易處理的近似算法。
機器學習在數據挖掘、計算機視覺、自然語言處理、生物特征識別、搜索引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA 序列測序、語言與手寫識別、戰略游戲與機器人運用等領域有著十分廣泛的應用。它無疑是當前數據分析領域的一個熱點內容。
機器學習的算法繁多,其中很多算法是一類算法,而有些算法又是從其他算法中衍生出來的,因此我們可以按照不同的角度將其分類。本文主要通過學習方式和算法類似性這兩個角度將機器學習算法進行分類。
學習方式
監督式學習:從給定的訓練數據集中學習出一個函數,當新的數據到來時,可以根據這個函數預測結果。監督學習的訓練集需要包括輸入和輸出,也可以說是特征和目標。訓練集中的目標是由人標注的。常見的監督式學習算法包括回歸分析和統計分類。
非監督式學習:與監督學習相比,訓練集沒有人為標注的結果。常見的非監督式學習算法有聚類。
半監督式學習:輸入數據部分被標識,部分沒有被標識,介于監督式學習與非監督式學習之間。常見的半監督式學習算法有支持向量機。
強化學習:在這種學習模式下,輸入數據作為對模型的反饋,不像監督模型那樣,輸入數據僅僅是作為一個檢查模型對錯的方式,在強化學習下,輸入數據直接反饋到模型,模型必須對此立刻作出調整。常見的強化學習算法有時間差學習。
算法類似性
決策樹學習:根據數據的屬性采用樹狀結構建立決策模型。決策樹模型常常用來解決分類和回歸問題。常見的算法包括 CART (Classification And Regression Tree)、ID3、C4.5、隨機森林 (Random Forest) 等。
回歸算法:試圖采用對誤差的衡量來探索變量之間的關系的一類算法。常見的回歸算法包括最小二乘法 (Least Square)、邏輯回歸 (Logistic Regression)、逐步式回歸 (Stepwise Regression) 等。
聚類算法:通常按照中心點或者分層的方式對輸入數據進行歸并。所有的聚類算法都試圖找到數據的內在結構,以便按照最大的共同點將數據進行歸類。常見的聚類算法包括 K-Means 算法以及期望最大化算法 (Expectation Maximization) 等。
人工神經網絡:模擬生物神經網絡,是一類模式匹配算法。通常用于解決分類和回歸問題。人工神經網絡算法包括感知器神經網絡 (Perceptron Neural Network) 、反向傳遞 (Back Propagation) 和深度學習等。
集成算法:用一些相對較弱的學習模型獨立地就同樣的樣本進行訓練,然后把結果整合起來進行整體預測。集成算法的主要難點在于究竟集成哪些獨立的較弱的學習模型以及如何把學習結果整合起來。這是一類非常強大的算法,同時也非常流行。常見的算法包括 Boosting、Bagging、AdaBoost、隨機森林 (Random Forest) 等。
決策樹是附加概率結果的一個樹狀的決策圖,是直觀的運用統計概率分析的圖法。機器學習中決策樹是一個預測模型,它表示對象屬性和對象值之間的一種映射,樹中的每一個節點表示對象屬性的判斷條件,其分支表示符合節點條件的對象。樹的葉子節點表示對象所屬的預測結果。
決策樹案例
圖 1. 決策樹案例圖
圖 1 是一棵結構簡單的決策樹,用于預測貸款用戶是否具有償還貸款的能力。貸款用戶主要具備三個屬性:是否擁有房產,是否結婚,平均月收入。每一個內部節點都表示一個屬性條件判斷,葉子節點表示貸款用戶是否具有償還能力。例如:用戶甲沒有房產,沒有結婚,月收入 5K。通過決策樹的根節點判斷,用戶甲符合右邊分支 (擁有房產為“否”);再判斷是否結婚,用戶甲符合左邊分支 (是否結婚為否);然后判斷月收入是否大于 4k,用戶甲符合左邊分支 (月收入大于 4K),該用戶落在“可以償還”的葉子節點上。所以預測用戶甲具備償還貸款能力。
決策樹建立
本文上一節已經討論如何用一棵決策樹進行分類。本節將通過特征選擇、剪枝,介紹如何根據已有的樣本數據建立一棵決策樹。
首先介紹下特征選擇。選擇一個合適的特征作為判斷節點,可以快速的分類,減少決策樹的深度。決策樹的目標就是把數據集按對應的類標簽進行分類。最理想的情況是,通過特征的選擇能把不同類別的數據集貼上對應類標簽。特征選擇的目標使得分類后的數據集比較純。如何衡量一個數據集純度,這里就需要引入數據純度函數。下面將介紹兩種表示數據純度的函數。
信息增益
信息熵表示的是不確定度。均勻分布時,不確定度最大,此時熵就最大。當選擇某個特征對數據集進行分類時,分類后的數據集信息熵會比分類前的小,其差值表示為信息增益。信息增益可以衡量某個特征對分類結果的影響大小。
假設在樣本數據集 D 中,混有 c 種類別的數據。構建決策樹時,根據給定的樣本數據集選擇某個特征值作為樹的節點。在數據集中,可以計算出該數據中的信息熵:
圖 2. 作用前的信息熵計算公式
其中 D 表示訓練數據集,c 表示數據類別數,Pi 表示類別 i 樣本數量占所有樣本的比例。
對應數據集 D,選擇特征 A 作為決策樹判斷節點時,在特征 A 作用后的信息熵的為 Info(D),計算如下:
圖 3. 作用后的信息熵計算公式
其中 k 表示樣本 D 被分為 k 個部分。
信息增益表示數據集 D 在特征 A 的作用后,其信息熵減少的值。公式如下:
圖 4. 信息熵差值計算公式
對于決策樹節點最合適的特征選擇,就是 Gain(A) 值最大的特征。
基尼指數
基尼指數是另一種數據的不純度的度量方法,其公式為:
圖 5. 基尼指數計算公式
其中 c 表示數據集中類別的數量,Pi 表示類別 i 樣本數量占所有樣本的比例。
從該公式可以看出,當數據集中數據混合的程度越高,基尼指數也就越高。當數據集 D 只有一種數據類型,那么基尼指數的值為最低 0。
如果選取的屬性為 A,那么分裂后的數據集 D 的基尼指數的計算公式為:
圖 6. 分裂后的基尼指數計算公式
其中 k 表示樣本 D 被分為 k 個部分,數據集 D 分裂成為 k 個 Dj 數據集。
對于特征選取,需要選擇最小的分裂后的基尼指數。也可以用基尼指數增益值作為決策樹選擇特征的依據。公式如下:
圖 7. 基尼指數差值計算公式
在決策樹選擇特征時,應選擇基尼指數增益值最大的特征,作為該節點分裂條件。
接下來介紹剪枝。在分類模型建立的過程中,很容易出現過擬合的現象。過擬合是指在模型學習訓練中,訓練樣本達到非常高的逼近精度,但對檢驗樣本的逼近誤差隨著訓練次數而呈現出先下降后上升的現象。過擬合時訓練誤差很小,但是檢驗誤差很大,不利于實際應用。
決策樹的過擬合現象可以通過剪枝進行一定的修復。剪枝分為預先剪枝和后剪枝兩種。
預先剪枝指在決策樹生長過程中,使用一定條件加以限制,使得產生完全擬合的決策樹之前就停止生長。預先剪枝的判斷方法也有很多,比如信息增益小于一定閥值的時候通過剪枝使決策樹停止生長。但如何確定一個合適的閥值也需要一定的依據,閥值太高導致模型擬合不足,閥值太低又導致模型過擬合。
后剪枝是在決策樹生長完成之后,按照自底向上的方式修剪決策樹。后剪枝有兩種方式,一種用新的葉子節點替換子樹,該節點的預測類由子樹數據集中的多數類決定。另一種用子樹中最常使用的分支代替子樹。
預先剪枝可能過早的終止決策樹的生長,后剪枝一般能夠產生更好的效果。但后剪枝在子樹被剪掉后,決策樹生長的一部分計算就被浪費了。
決策樹模型評估
建立了決策樹模型后需要給出該模型的評估值,這樣才可以來判斷模型的優劣。學習算法模型使用訓練集 (training set) 建立模型,使用校驗集 (test set) 來評估模型。本文通過評估指標和評估方法來評估決策樹模型。
評估指標有分類準確度、召回率、虛警率和精確度等。而這些指標都是基于混淆矩陣 (confusion matrix) 進行計算的。
混淆矩陣是用來評價監督式學習模型的精確性,矩陣的每一列代表一個類的實例預測,而每一行表示一個實際的類的實例。以二類分類問題為例,如下表所示:
預測的類 | ||||
---|---|---|---|---|
實際的類 | 類 = 1 | 類 = 0 | ||
類 = 1 | TP | FN | P | |
類 = 0 | FP | TN | N |
其中
P (Positive Sample):正例的樣本數量。
N(Negative Sample):負例的樣本數量。
TP(True Positive):正確預測到的正例的數量。
FP(False Positive):把負例預測成正例的數量。
FN(False Negative):把正例預測成負例的數量。
TN(True Negative):正確預測到的負例的數量。
根據混淆矩陣可以得到評價分類模型的指標有以下幾種。
分類準確度,就是正負樣本分別被正確分類的概率,計算公式為:
圖 8. 分類準確度計算公式
召回率,就是正樣本被識別出的概率,計算公式為:
圖 9. 召回率計算公式
虛警率,就是負樣本被錯誤分為正樣本的概率,計算公式為:
圖 10. 虛警率計算公式
精確度,就是分類結果為正樣本的情況真實性程度,計算公式為:
圖 11. 精確度計算公式
評估方法有保留法、隨機二次抽樣、交叉驗證和自助法等。
保留法 (holdout) 是評估分類模型性能的最基本的一種方法。將被標記的原始數據集分成訓練集和檢驗集兩份,訓練集用于訓練分類模型,檢驗集用于評估分類模型性能。但此方法不適用樣本較小的情況,模型可能高度依賴訓練集和檢驗集的構成。
隨機二次抽樣 (random subsampling) 是指多次重復使用保留方法來改進分類器評估方法。同樣此方法也不適用訓練集數量不足的情況,而且也可能造成有些數據未被用于訓練集。
交叉驗證 (cross-validation) 是指把數據分成數量相同的 k 份,每次使用數據進行分類時,選擇其中一份作為檢驗集,剩下的 k-1 份為訓練集,重復 k 次,正好使得每一份數據都被用于一次檢驗集 k-1 次訓練集。該方法的優點是盡可能多的數據作為訓練集數據,每一次訓練集數據和檢驗集數據都是相互獨立的,并且完全覆蓋了整個數據集。也存在一個缺點,就是分類模型運行了 K 次,計算開銷較大。
自助法 (bootstrap) 是指在其方法中,訓練集數據采用的是有放回的抽樣,即已經選取為訓練集的數據又被放回原來的數據集中,使得該數據有機會能被再一次抽取。用于樣本數不多的情況下,效果很好。
在本節中,將通過 R 和 IBM SPSS 兩種建模工具分別對其實際案例進行決策樹建模。
R 是一個用于統計計算及統計制圖的優秀的開源軟件,也是一個可以從大數據中獲取有用信息的絕佳工具。它能在目前各種主流操作系統上安裝使用,并且提供了很多數據管理、統計和繪圖函數。
下面本節就將使用 R 所提供的強大的函數庫來構建一棵決策樹并加以剪枝。
# 導入構建決策樹所需要的庫 library("rpart") library("rpart.plot") library("survival") # 查看本次構建決策樹所用的數據源 stagec # 通過 rpart 函數構建決策樹 fit <- rpart(Surv(pgtime,pgstat)~age+eet+g2+grade+gleason+ploidy,stagec,method="exp") # 查看決策樹的具體信息 print(fit) printcp(fit) # 繪制構建完的決策樹圖 plot(fit, uniform=T, branch=0.6, compress=T) text(fit, use.n=T) # 通過 prune 函數剪枝 fit2 <- prune(fit, cp=0.016) # 繪制剪枝完后的決策樹圖 plot(fit2, uniform=T, branch=0.6, compress=T) text(fit2, use.n=T)
根據代碼,運行步驟如下:
該案例決策樹的擬合結果與剪枝前后的樹如下圖所示:
IBM SPSS Modeler 是一個預測分析平臺,能夠為個人、團隊、系統和企業做決策提供預測性信息。它可提供各種高級算法和技術 (包括文本分析、實體分析、決策管理與優化),幫助您選擇可實現更佳成果的操作。
在 SPSS Modeler 中有很多應用實例,其中就包括一個決策樹算法模型的案例。此示例使用名為 druglearn.str 的流,此流引用名為 DRUG1n 的數據文件。這些文件可在任何 IBM SPSS Modeler 安裝程序的 Demos 目錄中找到。操作步驟如下:
在生成模型 Drug 以后,我們可以在模型頁面中瀏覽 Drug 模型。打開 Drug 模型以后,可在規則瀏覽框中以決策樹形式顯示 C5.0 節點所生成的規則集。還可以通過更復雜的圖表形式查看同一決策樹。如下圖所示:
本文主要通過一個決策樹的典型案例,著重從特征選擇、剪枝等方面描述決策樹的構建,討論并研究決策樹模型評估準則,最后基于 R 語言和 SPSS 這兩個工具,分別設計與實現了決策樹模型的應用實例。通過較多的統計學公式和案例圖表,生動地展示了一棵決策樹是如何構建并將其應用到實際場景中去的。
本文也展開討論了分類算法之間的相互比較和優缺點,特征選擇與剪枝各種方法之間的相互比較,各個評估方法的優缺點等。通過這些討論與分析,能夠以更好的方法論來解決實際生產環境下的問題。
同時,決策樹只是整個機器學習領域的冰山一角,而機器學習領域又是當前大數據分析領域的熱點,因此還有很多很多值得我們去學習、去研究的地方。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25