【數據挖掘技術】決策樹

 

1、決策樹基本概述算法

      決策樹(Decison Tree)之因此稱爲樹是由於其建模過程相似一棵樹的成長過程,即從根部開始,到樹幹,到分支,再到細枝末葉的分叉,最終勝出出一片片的樹葉。在數據樹裏面,所分析的數據數據樣本先是成爲一個樹根,而後通過層層分支,最終造成若干個節點,每一個節點表明一個結論。從決策樹的過年不到葉節點的一條路徑就造成了對相應對象的類別預測。dom

     決策樹算法之因此在數據分析挖掘應用中如此流行,主要緣由是在於決策樹的構造不須要任何領域的知識,很適合探索式的數據挖掘,而且能夠處理高緯度的數據。函數

     策樹技術對數據分佈甚至缺失是很是寬容的,不容易受到極值的影響。這是因爲,決策樹是分參數的,因此不須要擔憂利羣點和數據是否現行可分的問題,可是決策樹最主要的缺點就是容易過分擬合,這也正是隨機森林(Random Tree)等集成學習算法被提出了的緣由。可是RT在不少分類問題中表現得最好(我的通常認爲比SVM稍好),且速度可快擴展,也不像SVM那樣須要調用大量的參數,所以RT是近期來很是流行的方法。工具

 2、決策樹原理學習

      構成決策樹採用的是自頂向下的貪婪算法,它會在每一個節點選擇分類效果最好的屬性對樣本進行二分類,而後繼續這個過程,直到這棵樹可以準確的分類訓練樣本,或者全部的屬性都已被用過。決策樹算法的核心是在對每一個結點進行測試後,選擇最佳的屬性,而且對決策樹進行剪枝處理。測試

  • 結點屬性
最多見的結點屬性選擇方法(標準)有信息增益、信息增益率、Gini指數、卡方檢驗(Chi-Square Statistics)等。
  •  剪枝處理
    1 決策樹的剪枝處理包括兩種方式:先剪枝(Prepruning)和後剪枝(Postpruning). 2 
    3 所謂先剪枝,就是讓決策樹在生長以前,就認爲定好樹的層數,以及每一個節點所容許的最少的樣本數量,並且在給點的節點再也不分裂。 4 
    5 所謂後剪枝,是讓樹充分生長,而後剪去子樹,刪除節點的分支並用樹葉代替。後剪枝的方法更經常使用。CART算法就包含了後剪枝方法,它使用的是代價複雜度剪枝算法,即將樹的代價複雜度可看作是樹種樹葉結點的個數和樹的錯誤率的函數。C4.5使用的是悲觀剪枝方法,相似於代替複雜度剪枝算法。

     

3、決策樹算法優化

      目前,最多見的3中決策樹方法分別是:CHAIN,CART,和ID3(包括後來的C4.5,乃至C5.0)。spa

  • CHAID算法:卡方自動相互關係檢測

       CHAID(Chi-square Antomatic Detector,卡方自動相互關係檢測)算法的歷史較長,中文簡稱爲。CHAID依據局部最優原則,利用卡方檢驗來選擇對因變量最具備影響的自變量,CHAID應用的前提是因變量爲類別型變量(Category).code

 

      CHAID算法的邏輯,簡述以下:orm

【step 1】對全部的自變量進行逐一檢測,利用卡方檢驗肯定每一個自變量和因變量之間的關係。
             具體來講,就是在檢驗時,每次從自變量裏抽取兩個既定值,與因變量進行卡方檢驗。若是卡方檢驗顯式二者關係不顯著,則證實上述兩個既定值能夠合併。如此,合併過程將會不斷減小自變量的取值數量,知         道該自變量全部取值都呈現顯著性爲止。在對們每一個自變量進行相似處理後,經過比較找出最顯著的自變量,並按自變量最終取值對樣本進行分割,造成若干個新的生長結點。
【step2】CHAID在每一個新結點上,重複上述步驟,對每一個新結點從新進行最佳自變量選擇。
整個過程不斷重複,直到每一個結點沒法再找到一個與因變量有統計顯著性的自變量對其進行分割爲止,或者以前限度的條件獲得知足,樹的生長就此終止。

 

  • CART:卡方自動相互關係檢測

       CART(Classification and Regression Tree,分類與會歸屬)算法產生於20世紀80年代中期,CART的分割邏輯與CHAID相同,每一層的劃分都是基於對多有自變量的檢驗和選擇上的。可是,CART採用的檢驗標準不是卡方檢驗,而是基尼係數(Gini)等不純度的指標。二者最大的區別在於CHAID採用的是局部最優原則,即節點之間互不相關,一個結點肯定了以後,下面的生長過程徹底在結點內進行。而CART則着眼於整體優化,即先讓樹儘量地生長,而後再回過頭來對數進行修剪(Prune),這一點很是相似統計分析中迴歸算法離的反向選擇(Backward Selection)。CART所生產的決策時是二分的,每一個節點只能分出兩隻,而且在樹的生長過程當中,同一個自變量能夠反覆使用屢次(分割),這些都不一樣於CHAID的特色。另外,若是是自變量存在數據缺失的狀況,CART的處理方式將會有將會是尋找一個替代數據代替(填充)缺失值,而CHAID則是把缺失值做爲單獨的一類數值。

  • ID3:迭代二分器

      ID3(Iterative Dichotomiser,迭代的二分器)算法與CART是同一時期產生的,其最大的特色在於自變量的挑選標準是:基於信息增益的度量選擇具備最高信息增益的屬性做爲節點的分裂(分割)屬性,其結果就是對分割後的結點進行分類所需的信息量最小,這也是一種劃分純度的思想。至於以後發展起來的C4.5能夠理解爲ID3的發展版(後繼版),二者的主要區別在於C4.5採用信息增益表(Gain Ratio)表明了ID3中的信息增益度量,如此替換的主要緣由是信息增益度有個缺點,就是傾向於選擇具備大量值的屬性。這裏給個極端的例子,對於Member_Id的劃分,每一個ID都是一個最純的組,可是這樣的劃分沒有任何實際意義。而C4.5所採用的信息增量率就能夠較好的客服這個缺點,它在信息增益的基礎上,增長了一個分裂信息(SplitInformation)對其進行規範化約束。

    決策樹技術在數據化運營中的主要用途體如今:做爲分類,預測問題的典型支持技術,它在用戶劃分、行爲預測、規則數理等方面具備普遍的應用前景,決策樹甚至能夠做爲其餘建模技術前期進行變量篩選的一種方法,及經過決策樹的分割來篩選有效地輸入自變量。

4、決策樹的應用優點

  • 決策樹模型很是直觀易懂,生成一系列「若是.......那麼.......」的邏輯判斷很容易讓人理解和應用。

  • 決策樹搭建和應用的速度比較快,而且能夠處理區間型變量和類別型變量。可是要強調的是「能夠處理區間型變量」不表明「快速處理區間型變量」,若是輸入變量只是類別型或次序型變量,決策樹的搭建是很是快的,可是若是加上了區間型變量,視數據規模,其模型搭建速度可能有所不一樣。
  • 決策樹對數據分佈沒有特別嚴格的要求。
  • 對缺失值很寬容,幾乎不作任何處理就能夠應用。
  • 不容易受異常值的影響。
  • 能夠同時對付數據中線性和非線性的關係。
  • 決策樹一般還能夠做爲有效工具來幫助其餘模型算法挑選自變量。決策樹不只自己對於數據的前期處理和清洗沒有什麼特別的要求和限制,它還會幫助別的模型算法去挑選自變量。所以決策樹算法裏節點的自變量選擇方法徹底適用於其餘算法模型,包括卡方檢驗、Gini指數、信息增益等。
  • 決策樹算法使用信息原理對大樣本的屬性進行信息量分析,並計算各屬性的信息量,找出反映類別的重要屬性,可準確、高效地發現哪些屬性對分類最具備意義。這一點對於區間變量的分享操做很是重要。

5、決策樹的缺點

  • 決策樹最大的缺點就是其原理中的貪心算法。貪心算法老是作出在當前看來最好的選擇,卻並不從總體上思考最優的劃分,所以,它所作的選擇只能是某種意義上的最優選擇。
  • 若是目標變量是連續型變量,那就不適宜用決策樹了,最好改用線性迴歸去解決。
  • 決策樹缺少像迴歸或聚類那樣的豐富多彩的檢測標準和評價方法。
  • 當某些自變量的類別數量比較多,或者自變量是區間型變量時,決策樹過分擬合的危險性會增長。針對這種狀況,數據分析師須要進行數據轉換,好比分箱和屢次模型驗證和測試,確保其具備穩定性。
  • 決策樹對區間型變量進行分箱操做室,不管是否考慮了順序因素,均可能會喪失某些重要的信息。尤爲是當分箱錢的區間型變量與目標變量有明顯的線性關係室,這種分箱操做所形成的信息損失更爲明顯。
相關文章
相關標籤/搜索