機(jī)器學(xué)習(xí)在各個(gè)領(lǐng)域都有廣泛的應(yīng)用,,特別在數(shù)據(jù)分析領(lǐng)域有著深遠(yuǎn)的影響,。決策樹是機(jī)器學(xué)習(xí)中最基礎(chǔ)且應(yīng)用最廣泛的算法模型。本文介紹了機(jī)器學(xué)習(xí)的相關(guān)概念,、常見的算法分類和決策樹模型及應(yīng)用,。通過一個(gè)決策樹案例,著重從特征選擇,、剪枝等方面描述決策樹的構(gòu)建,,討論并研究決策樹模型評(píng)估準(zhǔn)則。最后基于 R 語言和 SPSS 這兩個(gè)工具,,分別設(shè)計(jì)與實(shí)現(xiàn)了決策樹模型的應(yīng)用實(shí)例,。
機(jī)器學(xué)習(xí)概念機(jī)器學(xué)習(xí) (Machine Learning) 是近 20 多年興起的一門多領(lǐng)域交叉學(xué)科,,涉及概率論,、統(tǒng)計(jì)學(xué)、逼近論,、凸分析,、算法復(fù)雜度理論等多門學(xué)科。
算法分類機(jī)器學(xué)習(xí)的算法繁多,其中很多算法是一類算法,,而有些算法又是從其他算法中衍生出來的,,因此我們可以按照不同的角度將其分類。本文主要通過學(xué)習(xí)方式和算法類似性這兩個(gè)角度將機(jī)器學(xué)習(xí)算法進(jìn)行分類,。 學(xué)習(xí)方式
算法類似性
決策樹決策樹是附加概率結(jié)果的一個(gè)樹狀的決策圖,,是直觀的運(yùn)用統(tǒng)計(jì)概率分析的圖法,。機(jī)器學(xué)習(xí)中決策樹是一個(gè)預(yù)測模型,它表示對象屬性和對象值之間的一種映射,,樹中的每一個(gè)節(jié)點(diǎn)表示對象屬性的判斷條件,,其分支表示符合節(jié)點(diǎn)條件的對象。樹的葉子節(jié)點(diǎn)表示對象所屬的預(yù)測結(jié)果,。 決策樹案例 圖 1. 決策樹案例圖圖 1 是一棵結(jié)構(gòu)簡單的決策樹,,用于預(yù)測貸款用戶是否具有償還貸款的能力。貸款用戶主要具備三個(gè)屬性:是否擁有房產(chǎn),,是否結(jié)婚,,平均月收入。每一個(gè)內(nèi)部節(jié)點(diǎn)都表示一個(gè)屬性條件判斷,,葉子節(jié)點(diǎn)表示貸款用戶是否具有償還能力,。例如:用戶甲沒有房產(chǎn),,沒有結(jié)婚,月收入 5K,。通過決策樹的根節(jié)點(diǎn)判斷,,用戶甲符合右邊分支 (擁有房產(chǎn)為“否”);再判斷是否結(jié)婚,,用戶甲符合左邊分支 (是否結(jié)婚為否),;然后判斷月收入是否大于 4k,用戶甲符合左邊分支 (月收入大于 4K),,該用戶落在“可以償還”的葉子節(jié)點(diǎn)上,。所以預(yù)測用戶甲具備償還貸款能力。 決策樹建立 本文上一節(jié)已經(jīng)討論如何用一棵決策樹進(jìn)行分類,。本節(jié)將通過特征選擇,、剪枝,介紹如何根據(jù)已有的樣本數(shù)據(jù)建立一棵決策樹,。 首先介紹下特征選擇,。選擇一個(gè)合適的特征作為判斷節(jié)點(diǎn),可以快速的分類,,減少?zèng)Q策樹的深度,。決策樹的目標(biāo)就是把數(shù)據(jù)集按對應(yīng)的類標(biāo)簽進(jìn)行分類。最理想的情況是,,通過特征的選擇能把不同類別的數(shù)據(jù)集貼上對應(yīng)類標(biāo)簽,。特征選擇的目標(biāo)使得分類后的數(shù)據(jù)集比較純。如何衡量一個(gè)數(shù)據(jù)集純度,,這里就需要引入數(shù)據(jù)純度函數(shù),。下面將介紹兩種表示數(shù)據(jù)純度的函數(shù)。
信息熵表示的是不確定度,。均勻分布時(shí),,不確定度最大,此時(shí)熵就最大,。當(dāng)選擇某個(gè)特征對數(shù)據(jù)集進(jìn)行分類時(shí),,分類后的數(shù)據(jù)集信息熵會(huì)比分類前的小,其差值表示為信息增益,。信息增益可以衡量某個(gè)特征對分類結(jié)果的影響大小,。 圖 2. 作用前的信息熵計(jì)算公式其中 D 表示訓(xùn)練數(shù)據(jù)集,,c 表示數(shù)據(jù)類別數(shù),,Pi 表示類別 i 樣本數(shù)量占所有樣本的比例。 對應(yīng)數(shù)據(jù)集 D,,選擇特征 A 作為決策樹判斷節(jié)點(diǎn)時(shí),,在特征 A 作用后的信息熵的為 Info(D),計(jì)算如下: 圖 3. 作用后的信息熵計(jì)算公式其中 k 表示樣本 D 被分為 k 個(gè)部分,。 信息增益表示數(shù)據(jù)集 D 在特征 A 的作用后,,其信息熵減少的值。公式如下: 圖 4. 信息熵差值計(jì)算公式對于決策樹節(jié)點(diǎn)最合適的特征選擇,,就是 Gain(A) 值最大的特征,。
基尼指數(shù)是另一種數(shù)據(jù)的不純度的度量方法,其公式為: 圖 5. 基尼指數(shù)計(jì)算公式其中 c 表示數(shù)據(jù)集中類別的數(shù)量,,Pi 表示類別 i 樣本數(shù)量占所有樣本的比例,。 從該公式可以看出,當(dāng)數(shù)據(jù)集中數(shù)據(jù)混合的程度越高,,基尼指數(shù)也就越高,。當(dāng)數(shù)據(jù)集 D 只有一種數(shù)據(jù)類型,那么基尼指數(shù)的值為最低 0,。 如果選取的屬性為 A,,那么分裂后的數(shù)據(jù)集 D 的基尼指數(shù)的計(jì)算公式為: 圖 6. 分裂后的基尼指數(shù)計(jì)算公式其中 k 表示樣本 D 被分為 k 個(gè)部分,數(shù)據(jù)集 D 分裂成為 k 個(gè) Dj 數(shù)據(jù)集,。 對于特征選取,,需要選擇最小的分裂后的基尼指數(shù)。也可以用基尼指數(shù)增益值作為決策樹選擇特征的依據(jù),。公式如下: 圖 7. 基尼指數(shù)差值計(jì)算公式在決策樹選擇特征時(shí),,應(yīng)選擇基尼指數(shù)增益值最大的特征,作為該節(jié)點(diǎn)分裂條件,。 接下來介紹剪枝,。在分類模型建立的過程中,很容易出現(xiàn)過擬合的現(xiàn)象,。過擬合是指在模型學(xué)習(xí)訓(xùn)練中,,訓(xùn)練樣本達(dá)到非常高的逼近精度,,但對檢驗(yàn)樣本的逼近誤差隨著訓(xùn)練次數(shù)而呈現(xiàn)出先下降后上升的現(xiàn)象,。過擬合時(shí)訓(xùn)練誤差很小,但是檢驗(yàn)誤差很大,,不利于實(shí)際應(yīng)用,。 決策樹的過擬合現(xiàn)象可以通過剪枝進(jìn)行一定的修復(fù)。剪枝分為預(yù)先剪枝和后剪枝兩種,。 預(yù)先剪枝指在決策樹生長過程中,,使用一定條件加以限制,,使得產(chǎn)生完全擬合的決策樹之前就停止生長。預(yù)先剪枝的判斷方法也有很多,,比如信息增益小于一定閥值的時(shí)候通過剪枝使決策樹停止生長,。但如何確定一個(gè)合適的閥值也需要一定的依據(jù),閥值太高導(dǎo)致模型擬合不足,,閥值太低又導(dǎo)致模型過擬合,。 后剪枝是在決策樹生長完成之后,按照自底向上的方式修剪決策樹,。后剪枝有兩種方式,,一種用新的葉子節(jié)點(diǎn)替換子樹,該節(jié)點(diǎn)的預(yù)測類由子樹數(shù)據(jù)集中的多數(shù)類決定,。另一種用子樹中最常使用的分支代替子樹,。 預(yù)先剪枝可能過早的終止決策樹的生長,后剪枝一般能夠產(chǎn)生更好的效果,。但后剪枝在子樹被剪掉后,,決策樹生長的一部分計(jì)算就被浪費(fèi)了。 決策樹模型評(píng)估 建立了決策樹模型后需要給出該模型的評(píng)估值,,這樣才可以來判斷模型的優(yōu)劣,。學(xué)習(xí)算法模型使用訓(xùn)練集 (training set) 建立模型,使用校驗(yàn)集 (test set) 來評(píng)估模型,。本文通過評(píng)估指標(biāo)和評(píng)估方法來評(píng)估決策樹模型,。 評(píng)估指標(biāo)有分類準(zhǔn)確度、召回率,、虛警率和精確度等,。而這些指標(biāo)都是基于混淆矩陣 (confusion matrix) 進(jìn)行計(jì)算的。 混淆矩陣是用來評(píng)價(jià)監(jiān)督式學(xué)習(xí)模型的精確性,,矩陣的每一列代表一個(gè)類的實(shí)例預(yù)測,,而每一行表示一個(gè)實(shí)際的類的實(shí)例。以二類分類問題為例,,如下表所示: 表 1. 混淆矩陣其中
根據(jù)混淆矩陣可以得到評(píng)價(jià)分類模型的指標(biāo)有以下幾種,。 分類準(zhǔn)確度,就是正負(fù)樣本分別被正確分類的概率,,計(jì)算公式為: 圖 8. 分類準(zhǔn)確度計(jì)算公式召回率,,就是正樣本被識(shí)別出的概率,,計(jì)算公式為: 圖 9. 召回率計(jì)算公式虛警率,就是負(fù)樣本被錯(cuò)誤分為正樣本的概率,,計(jì)算公式為: 圖 10. 虛警率計(jì)算公式精確度,,就是分類結(jié)果為正樣本的情況真實(shí)性程度,計(jì)算公式為: 圖 11. 精確度計(jì)算公式評(píng)估方法有保留法,、隨機(jī)二次抽樣,、交叉驗(yàn)證和自助法等。 保留法 (holdout) 是評(píng)估分類模型性能的最基本的一種方法,。將被標(biāo)記的原始數(shù)據(jù)集分成訓(xùn)練集和檢驗(yàn)集兩份,,訓(xùn)練集用于訓(xùn)練分類模型,檢驗(yàn)集用于評(píng)估分類模型性能,。但此方法不適用樣本較小的情況,,模型可能高度依賴訓(xùn)練集和檢驗(yàn)集的構(gòu)成。 隨機(jī)二次抽樣 (random subsampling) 是指多次重復(fù)使用保留方法來改進(jìn)分類器評(píng)估方法,。同樣此方法也不適用訓(xùn)練集數(shù)量不足的情況,,而且也可能造成有些數(shù)據(jù)未被用于訓(xùn)練集。 交叉驗(yàn)證 (cross-validation) 是指把數(shù)據(jù)分成數(shù)量相同的 k 份,,每次使用數(shù)據(jù)進(jìn)行分類時(shí),,選擇其中一份作為檢驗(yàn)集,剩下的 k-1 份為訓(xùn)練集,,重復(fù) k 次,,正好使得每一份數(shù)據(jù)都被用于一次檢驗(yàn)集 k-1 次訓(xùn)練集。該方法的優(yōu)點(diǎn)是盡可能多的數(shù)據(jù)作為訓(xùn)練集數(shù)據(jù),,每一次訓(xùn)練集數(shù)據(jù)和檢驗(yàn)集數(shù)據(jù)都是相互獨(dú)立的,,并且完全覆蓋了整個(gè)數(shù)據(jù)集。也存在一個(gè)缺點(diǎn),,就是分類模型運(yùn)行了 K 次,,計(jì)算開銷較大。 自助法 (bootstrap) 是指在其方法中,,訓(xùn)練集數(shù)據(jù)采用的是有放回的抽樣,,即已經(jīng)選取為訓(xùn)練集的數(shù)據(jù)又被放回原來的數(shù)據(jù)集中,使得該數(shù)據(jù)有機(jī)會(huì)能被再一次抽取,。用于樣本數(shù)不多的情況下,,效果很好。
決策樹建模在本節(jié)中,,將通過 R 和 IBM SPSS 兩種建模工具分別對其實(shí)際案例進(jìn)行決策樹建模,。 R R 是一個(gè)用于統(tǒng)計(jì)計(jì)算及統(tǒng)計(jì)制圖的優(yōu)秀的開源軟件,也是一個(gè)可以從大數(shù)據(jù)中獲取有用信息的絕佳工具,。它能在目前各種主流操作系統(tǒng)上安裝使用,,并且提供了很多數(shù)據(jù)管理、統(tǒng)計(jì)和繪圖函數(shù),。 下面本節(jié)就將使用 R 所提供的強(qiáng)大的函數(shù)庫來構(gòu)建一棵決策樹并加以剪枝,。 清單 1. 構(gòu)建決策樹及其剪枝的 R 代碼
根據(jù)代碼,運(yùn)行步驟如下:
該案例決策樹的擬合結(jié)果與剪枝前后的樹如下圖所示: 圖 12. 決策樹案例擬合圖圖 13. 未剪枝的決策樹圖圖 14. 剪枝后的決策樹圖 SPSS IBM SPSS Modeler 是一個(gè)預(yù)測分析平臺(tái),,能夠?yàn)閭€(gè)人、團(tuán)隊(duì),、系統(tǒng)和企業(yè)做決策提供預(yù)測性信息,。它可提供各種高級(jí)算法和技術(shù) (包括文本分析、實(shí)體分析,、決策管理與優(yōu)化),,幫助您選擇可實(shí)現(xiàn)更佳成果的操作。 在 SPSS Modeler 中有很多應(yīng)用實(shí)例,,其中就包括一個(gè)決策樹算法模型的案例,。此示例使用名為 druglearn.str 的流,此流引用名為 DRUG1n 的數(shù)據(jù)文件,。這些文件可在任何 IBM SPSS Modeler 安裝程序的 Demos 目錄中找到,。操作步驟如下:
圖 15. 模型流圖在生成模型 Drug 以后,,我們可以在模型頁面中瀏覽 Drug 模型,。打開 Drug 模型以后,可在規(guī)則瀏覽框中以決策樹形式顯示 C5.0 節(jié)點(diǎn)所生成的規(guī)則集,。還可以通過更復(fù)雜的圖表形式查看同一決策樹,。如下圖所示: 圖 16. 生成模型的決策樹圖
結(jié)束語本文主要通過一個(gè)決策樹的典型案例,著重從特征選擇,、剪枝等方面描述決策樹的構(gòu)建,,討論并研究決策樹模型評(píng)估準(zhǔn)則,最后基于 R 語言和 SPSS 這兩個(gè)工具,,分別設(shè)計(jì)與實(shí)現(xiàn)了決策樹模型的應(yīng)用實(shí)例,。通過較多的統(tǒng)計(jì)學(xué)公式和案例圖表,生動(dòng)地展示了一棵決策樹是如何構(gòu)建并將其應(yīng)用到實(shí)際場景中去的,。 本文也展開討論了分類算法之間的相互比較和優(yōu)缺點(diǎn),,特征選擇與剪枝各種方法之間的相互比較,各個(gè)評(píng)估方法的優(yōu)缺點(diǎn)等,。通過這些討論與分析,,能夠以更好的方法論來解決實(shí)際生產(chǎn)環(huán)境下的問題。 同時(shí),,決策樹只是整個(gè)機(jī)器學(xué)習(xí)領(lǐng)域的冰山一角,,而機(jī)器學(xué)習(xí)領(lǐng)域又是當(dāng)前大數(shù)據(jù)分析領(lǐng)域的熱點(diǎn),因此還有很多很多值得我們?nèi)W(xué)習(xí),、去研究的地方,。
參考資源 (resources)學(xué)習(xí)
討論 加入 developerWorks 中文社區(qū),,查看開發(fā)人員推動(dòng)的博客,、論壇、組和維基,,并與其他 developerWorks 用戶交流,。 |
|