當前位置:首頁 » 操作系統 » 決策樹的演算法

決策樹的演算法

發布時間: 2022-09-05 02:18:53

⑴ 決策樹演算法原理是什麼

決策樹構造的輸入是一組帶有類別標記的例子,構造的結果是一棵二叉樹或多叉樹。二叉樹的 內部節點(非 葉子節點)一般表示為一個邏輯判斷,如形式為a=aj的邏輯判斷,其中a是屬性,aj是該屬性的所有取值:樹的邊是邏輯判斷的分支結果。

多叉樹(ID3)的內部結點是屬性,邊是該屬性的所有取值,有幾個 屬性值就有幾條邊。樹的葉子節點都是類別標記。

由於數據表示不當、有雜訊或者由於決策樹生成時產生重復的子樹等原因,都會造成產生的決策樹過大。

因此,簡化決策樹是一個不可缺少的環節。尋找一棵最優決策樹,主要應解決以下3個最優化問題:①生成最少數目的葉子節點;②生成的每個葉子節點的深度最小;③生成的決策樹葉子節點最少且每個葉子節點的深度最小。

(1)決策樹的演算法擴展閱讀:

決策樹演算法的優點如下:

(1)分類精度高;

(2)生成的模式簡單;

(3)對雜訊數據有很好的健壯性。

因而是目前應用最為廣泛的歸納推理演算法之一,在 數據挖掘中受到研究者的廣泛關注。

⑵ 決策樹的計算方法

決策樹(Decision Tree)是在已知各種情況發生概率的基礎上,通過構成決策樹來求取凈現值的期望值大於等於零的概率,評價項目風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種圖解法。由於這種決策分支畫成圖形很像一棵樹的枝幹,故稱決策樹。在機器學習中,決策樹是一個預測模型,他代表的是對象屬性與對象值之間的一種映射關系。

⑶ 決策樹演算法原理

決策樹是通過一系列規則對數據進行分類的過程。它提供一種在什麼條件下會得到什麼值的類似規則的方法。決策樹分為分類樹和回歸樹兩種,分類樹對離散變數做決策樹,回歸樹對連續變數做決策樹。

如果不考慮效率等,那麼樣本所有特徵的判斷級聯起來終會將某一個樣本分到一個類終止塊上。實際上,樣本所有特徵中有一些特徵在分類時起到決定性作用,決策樹的構造過程就是找到這些具有決定性作用的特徵,根據其決定性程度來構造一個倒立的樹--決定性作用最大的那個特徵作為根節點,然後遞歸找到各分支下子數據集中次大的決定性特徵,直至子數據集中所有數據都屬於同一類。所以,構造決策樹的過程本質上就是根據數據特徵將數據集分類的遞歸過程,我們需要解決的第一個問題就是,當前數據集上哪個特徵在劃分數據分類時起決定性作用。

一棵決策樹的生成過程主要分為以下3個部分:

特徵選擇:特徵選擇是指從訓練數據中眾多的特徵中選擇一個特徵作為當前節點的分裂標准,如何選擇特徵有著很多不同量化評估標准標准,從而衍生出不同的決策樹演算法。

決策樹生成: 根據選擇的特徵評估標准,從上至下遞歸地生成子節點,直到數據集不可分則停止決策樹停止生長。 樹結構來說,遞歸結構是最容易理解的方式。

剪枝:決策樹容易過擬合,一般來需要剪枝,縮小樹結構規模、緩解過擬合。剪枝技術有預剪枝和後剪枝兩種。

劃分數據集的最大原則是:使無序的數據變的有序。如果一個訓練數據中有20個特徵,那麼選取哪個做劃分依據?這就必須採用量化的方法來判斷,量化劃分方法有多重,其中一項就是「資訊理論度量信息分類」。基於資訊理論的決策樹演算法有ID3、CART和C4.5等演算法,其中C4.5和CART兩種演算法從ID3演算法中衍生而來。

CART和C4.5支持數據特徵為連續分布時的處理,主要通過使用二元切分來處理連續型變數,即求一個特定的值-分裂值:特徵值大於分裂值就走左子樹,或者就走右子樹。這個分裂值的選取的原則是使得劃分後的子樹中的「混亂程度」降低,具體到C4.5和CART演算法則有不同的定義方式。

ID3演算法由Ross Quinlan發明,建立在「奧卡姆剃刀」的基礎上:越是小型的決策樹越優於大的決策樹(be simple簡單理論)。ID3演算法中根據資訊理論的信息增益評估和選擇特徵,每次選擇信息增益最大的特徵做判斷模塊。ID3演算法可用於劃分標稱型數據集,沒有剪枝的過程,為了去除過度數據匹配的問題,可通過裁剪合並相鄰的無法產生大量信息增益的葉子節點(例如設置信息增益閥值)。使用信息增益的話其實是有一個缺點,那就是它偏向於具有大量值的屬性--就是說在訓練集中,某個屬性所取的不同值的個數越多,那麼越有可能拿它來作為分裂屬性,而這樣做有時候是沒有意義的,另外ID3不能處理連續分布的數據特徵,於是就有了C4.5演算法。CART演算法也支持連續分布的數據特徵。

C4.5是ID3的一個改進演算法,繼承了ID3演算法的優點。C4.5演算法用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足在樹構造過程中進行剪枝;能夠完成對連續屬性的離散化處理;能夠對不完整數據進行處理。C4.5演算法產生的分類規則易於理解、准確率較高;但效率低,因樹構造過程中,需要對數據集進行多次的順序掃描和排序。也是因為必須多次數據集掃描,C4.5隻適合於能夠駐留於內存的數據集。

CART演算法的全稱是Classification And Regression Tree,採用的是Gini指數(選Gini指數最小的特徵s)作為分裂標准,同時它也是包含後剪枝操作。ID3演算法和C4.5演算法雖然在對訓練樣本集的學習中可以盡可能多地挖掘信息,但其生成的決策樹分支較大,規模較大。為了簡化決策樹的規模,提高生成決策樹的效率,就出現了根據GINI系數來選擇測試屬性的決策樹演算法CART。

決策樹演算法的優點:

(1)便於理解和解釋,樹的結構可以可視化出來

(2)基本不需要預處理,不需要提前歸一化,處理缺失值

(3)使用決策樹預測的代價是O(log2m),m為樣本數

(4)能夠處理數值型數據和分類數據

(5)可以處理多維度輸出的分類問題

(6)可以通過數值統計測試來驗證該模型,這使解釋驗證該模型的可靠性成為可能

(7)即使該模型假設的結果與真實模型所提供的數據有些違反,其表現依舊良好

決策樹演算法的缺點:

(1)決策樹模型容易產生一個過於復雜的模型,這樣的模型對數據的泛化性能會很差。這就是所謂的過擬合.一些策略像剪枝、設置葉節點所需的最小樣本數或設置數的最大深度是避免出現該問題最為有效地方法。

(2)決策樹可能是不穩定的,因為數據中的微小變化可能會導致完全不同的樹生成。這個問題可以通過決策樹的集成來得到緩解。

(3)在多方面性能最優和簡單化概念的要求下,學習一棵最優決策樹通常是一個NP難問題。因此,實際的決策樹學習演算法是基於啟發式演算法,例如在每個節點進行局部最優決策的貪心演算法。這樣的演算法不能保證返回全局最優決策樹。這個問題可以通過集成學習來訓練多棵決策樹來緩解,這多棵決策樹一般通過對特徵和樣本有放回的隨機采樣來生成。

(4)有些概念很難被決策樹學習到,因為決策樹很難清楚的表述這些概念。例如XOR,奇偶或者復用器的問題。

(5)如果某些類在問題中佔主導地位會使得創建的決策樹有偏差。因此,我們建議在擬合前先對數據集進行平衡。

(1)當數據的特徵維度很高而數據量又很少的時候,這樣的數據在構建決策樹的時候往往會過擬合。所以我們要控制樣本數量和特徵的之間正確的比率;

(2)在構建決策樹之前,可以考慮預先執行降維技術(如PCA,ICA或特徵選擇),以使我們生成的樹更有可能找到具有辨別力的特徵;

(3)在訓練一棵樹的時候,可以先設置max_depth=3來將樹可視化出來,以便我們找到樹是怎樣擬合我們數據的感覺,然後在增加我們樹的深度;

(4)樹每增加一層,填充所需的樣本數量是原來的2倍,比如我們設置了最小葉節點的樣本數量,當我們的樹層數增加一層的時候,所需的樣本數量就會翻倍,所以我們要控制好樹的最大深度,防止過擬合;

(5)使用min_samples_split(節點可以切分時擁有的最小樣本數) 和 min_samples_leaf(最小葉節點數)來控制葉節點的樣本數量。這兩個值設置的很小通常意味著我們的樹過擬合了,而設置的很大意味著我們樹預測的精度又會降低。通常設置min_samples_leaf=5;

(6)當樹的類比不平衡的時候,在訓練之前一定要先平很數據集,防止一些類別大的類主宰了決策樹。可以通過采樣的方法將各個類別的樣本數量到大致相等,或者最好是將每個類的樣本權重之和(sample_weight)規范化為相同的值。另請注意,基於權重的預剪枝標准(如min_weight_fraction_leaf)將比不知道樣本權重的標准(如min_samples_leaf)更少偏向主導類別。

(7)如果樣本是帶權重的,使用基於權重的預剪枝標准將更簡單的去優化樹結構,如mn_weight_fraction_leaf,這確保了葉節點至少包含了樣本權值總體總和的一小部分;

(8)在sklearn中所有決策樹使用的數據都是np.float32類型的內部數組。如果訓練數據不是這種格式,則將復制數據集,這樣會浪費計算機資源。

(9)如果輸入矩陣X非常稀疏,建議在調用fit函數和稀疏csr_matrix之前轉換為稀疏csc_matrix,然後再調用predict。 當特徵在大多數樣本中具有零值時,與密集矩陣相比,稀疏矩陣輸入的訓練時間可以快幾個數量級。

⑷ 數據挖掘-決策樹演算法

決策樹演算法是一種比較簡易的監督學習分類演算法,既然叫做決策樹,那麼首先他是一個樹形結構,簡單寫一下樹形結構(數據結構的時候學過不少了)。

樹狀結構是一個或多個節點的有限集合,在決策樹里,構成比較簡單,有如下幾種元素:

在決策樹中,每個葉子節點都有一個類標簽,非葉子節點包含對屬性的測試條件,用此進行分類。
所以個人理解,決策樹就是 對一些樣本,用樹形結構對樣本的特徵進行分支,分到葉子節點就能得到樣本最終的分類,而其中的非葉子節點和分支就是分類的條件,測試和預測分類就可以照著這些條件來走相應的路徑進行分類。

根據這個邏輯,很明顯決策樹的關鍵就是如何找出決策條件和什麼時候算作葉子節點即決策樹終止。

決策樹的核心是為不同類型的特徵提供表示決策條件和對應輸出的方法,特徵類型和劃分方法包括以下幾個:

注意,這些圖中的第二層都是分支,不是葉子節點。

如何合理的對特徵進行劃分,從而找到最優的決策模型呢?在這里需要引入信息熵的概念。

先來看熵的概念:

在數據集中,參考熵的定義,把信息熵描述為樣本中的不純度,熵越高,不純度越高,數據越混亂(越難區分分類)。

例如:要給(0,1)分類,熵是0,因為能明顯分類,而均衡分布的(0.5,0.5)熵比較高,因為難以劃分。

信息熵的計算公式為:
其中 代表信息熵。 是類的個數, 代表在 類時 發生的概率。
另外有一種Gini系數,也可以用來衡量樣本的不純度:
其中 代表Gini系數,一般用於決策樹的 CART演算法

舉個例子:

如果有上述樣本,那麼樣本中可以知道,能被分為0類的有3個,分為1類的也有3個,那麼信息熵為:
Gini系數為:
總共有6個數據,那麼其中0類3個,佔比就是3/6,同理1類。

我們再來計算一個分布比較一下:

信息熵為:
Gini系數為:

很明顯,因為第二個分布中,很明顯這些數偏向了其中一類,所以 純度更高 ,相對的信息熵和Gini系數較低。

有了上述的概念,很明顯如果我們有一組數據要進行分類,最快的建立決策樹的途徑就是讓其在每一層都讓這個樣本純度最大化,那麼就要引入信息增益的概念。

所謂增益,就是做了一次決策之後,樣本的純度提升了多少(不純度降低了多少),也就是比較決策之前的樣本不純度和決策之後的樣本不純度,差越大,效果越好。
讓信息熵降低,每一層降低的越快越好。
度量這個信息熵差的方法如下:
其中 代表的就是信息熵(或者其他可以度量不純度的系數)的差, 是樣本(parent是決策之前, 是決策之後)的信息熵(或者其他可以度量不純度的系數), 為特徵值的個數, 是原樣本的記錄總數, 是與決策後的樣本相關聯的記錄個數。

當選擇信息熵作為樣本的不純度度量時,Δ就叫做信息增益

我們可以遍歷每一個特徵,看就哪個特徵決策時,產生的信息增益最大,就把他作為當前決策節點,之後在下一層繼續這個過程。

舉個例子:

如果我們的目標是判斷什麼情況下,銷量會比較高(受天氣,周末,促銷三個因素影響),根據上述的信息增益求法,我們首先應該找到根據哪個特徵來決策,以信息熵為例:

首先肯定是要求 ,也就是銷量這個特徵的信息熵:

接下來,就分別看三個特徵關於銷量的信息熵,先看天氣,天氣分為好和壞兩種,其中天氣為好的條件下,銷量為高的有11條,低的有6條;天氣壞時,銷量為高的有7條,銷量為低的有10條,並且天氣好的總共17條,天氣壞的總共17條。

分別計算天氣好和天氣壞時的信息熵,天氣好時:

根據公式 ,可以知道,N是34,而天氣特徵有2個值,則k=2,第一個值有17條可以關聯到決策後的節點,第二個值也是17條,則能得出計算:

再計算周末這個特徵,也只有兩個特徵值,一個是,一個否,其中是有14條,否有20條;周末為是的中有11條銷量是高,3條銷量低,以此類推有:


信息增益為:

另外可以得到是否有促銷的信息增益為0.127268。

可以看出,以周末為決策,可以得到最大的信息增益,因此根節點就可以用周末這個特徵進行分支:

注意再接下來一層的原樣本集,不是34個而是周末為「是」和「否」分別計算,為是的是14個,否的是20個。
這樣一層一層往下遞歸,直到判斷節點中的樣本是否都屬於一類,或者都有同一個特徵值,此時就不繼續往下分了,也就生成了葉子節點。

上述模型的決策樹分配如下:

需要注意的是,特徵是否出現需要在分支當中看,並不是整體互斥的,周末生成的兩個分支,一個需要用促銷來決策,一個需要用天氣,並不代表再接下來就沒有特徵可以分了,而是在促銷決策層下面可以再分天氣,另外一遍天氣決策下面可以再分促銷。

決策樹的模型比較容易解釋,看這個樹形圖就能很容易的說出分類的條件。

我們知道屬性有二元屬性、標稱屬性、序數屬性和連續屬性,其中二元、標稱和序數都是類似的,因為是離散的屬性,按照上述方式進行信息增益計算即可,而連續屬性與這三個不同。

對於連續的屬性,為了降低其時間復雜度,我們可以先將屬性內部排序,之後取相鄰節點的均值作為決策值,依次取每兩個相鄰的屬性值的均值,之後比較他們的不純度度量。

需要注意的是,連續屬性可能在決策樹中出現多次,而不是像離散的屬性一樣在一個分支中出現一次就不會再出現了。

用信息熵或者Gini系數等不純度度量有一個缺點,就是會傾向於將多分支的屬性優先分類——而往往這種屬性並不是特徵。

例如上面例子中的第一行序號,有34個不同的值,那麼信息熵一定很高,但是實際上它並沒有任何意義,因此我們需要規避這種情況,如何規避呢,有兩種方式:

公式如下:

其中k為劃分的總數,如果每個屬性值具有相同的記錄數,則 ,劃分信息等於 ,那麼如果某個屬性產生了大量劃分,則劃分信息很大,信息增益率低,就能規避這種情況了。

為了防止過擬合現象,往往會對決策樹做優化,一般是通過剪枝的方式,剪枝又分為預剪枝和後剪枝。

在構建決策樹時,設定各種各樣的條件如葉子節點的樣本數不大於多少就停止分支,樹的最大深度等,讓決策樹的層級變少以防止過擬合。
也就是在生成決策樹之前,設定了決策樹的條件。

後剪枝就是在最大決策樹生成之後,進行剪枝,按照自底向上的方式進行修剪,修剪的規則是,評估葉子節點和其父節點的代價函數,如果父節點的代價函數比較小,則去掉這個葉子節點。
這里引入的代價函數公式是:
其中 代表的是葉子節點中樣本個數, 代表的是該葉子節點上的不純度度量,把每個葉子節點的 加起來,和父節點的 比較,之後進行剪枝即可。

⑸ 決策樹演算法有哪些

決策樹演算法有隨機森林,GBDT,XGboost,這些都是基於決策樹的

⑹ 決策樹演算法的典型演算法

決策樹的典型演算法有ID3,C4.5,CART等。
國際權威的學術組織,數據挖掘國際會議ICDM (the IEEE International Conference on Data Mining)在2006年12月評選出了數據挖掘領域的十大經典演算法中,C4.5演算法排名第一。C4.5演算法是機器學習演算法中的一種分類決策樹演算法,其核心演算法是ID3演算法。C4.5演算法產生的分類規則易於理解,准確率較高。不過在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,在實際應用中因而會導致演算法的低效。
決策樹演算法的優點如下:
(1)分類精度高;
(2)生成的模式簡單;
(3)對雜訊數據有很好的健壯性。
因而是目前應用最為廣泛的歸納推理演算法之一,在數據挖掘中受到研究者的廣泛關注。

⑺ 決策樹的演算法

C4.5演算法繼承了ID3演算法的優點,並在以下幾方面對ID3演算法進行了改進:
1) 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足;
2) 在樹構造過程中進行剪枝;
3) 能夠完成對連續屬性的離散化處理;
4) 能夠對不完整數據進行處理。
C4.5演算法有如下優點:產生的分類規則易於理解,准確率較高。其缺點是:在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致演算法的低效。此外,C4.5隻適合於能夠駐留於內存的數據集,當訓練集大得無法在內存容納時程序無法運行。
具體演算法步驟如下;
1創建節點N
2如果訓練集為空,在返回節點N標記為Failure
3如果訓練集中的所有記錄都屬於同一個類別,則以該類別標記節點N
4如果候選屬性為空,則返回N作為葉節點,標記為訓練集中最普通的類;
5for each 候選屬性 attribute_list
6if 候選屬性是連續的then
7對該屬性進行離散化
8選擇候選屬性attribute_list中具有最高信息增益率的屬性D
9標記節點N為屬性D
10for each 屬性D的一致值d
11由節點N長出一個條件為D=d的分支
12設s是訓練集中D=d的訓練樣本的集合
13if s為空
14加上一個樹葉,標記為訓練集中最普通的類
15else加上一個有C4.5(R - {D},C,s)返回的點 背景:
分類與回歸樹(CART——Classification And Regression Tree)) 是一種非常有趣並且十分有效的非參數分類和回歸方法。它通過構建二叉樹達到預測目的。
分類與回歸樹CART 模型最早由Breiman 等人提出,已經在統計領域和數據挖掘技術中普遍使用。它採用與傳統統計學完全不同的方式構建預測准則,它是以二叉樹的形式給出,易於理解、使用和解釋。由CART 模型構建的預測樹在很多情況下比常用的統計方法構建的代數學預測准則更加准確,且數據越復雜、變數越多,演算法的優越性就越顯著。模型的關鍵是預測准則的構建,准確的。
定義:
分類和回歸首先利用已知的多變數數據構建預測准則, 進而根據其它變數值對一個變數進行預測。在分類中, 人們往往先對某一客體進行各種測量, 然後利用一定的分類准則確定該客體歸屬那一類。例如, 給定某一化石的鑒定特徵, 預測該化石屬那一科、那一屬, 甚至那一種。另外一個例子是, 已知某一地區的地質和物化探信息, 預測該區是否有礦。回歸則與分類不同, 它被用來預測客體的某一數值, 而不是客體的歸類。例如, 給定某一地區的礦產資源特徵, 預測該區的資源量。

⑻ 決策樹演算法基礎 ID3與C4.5

決策樹演算法基礎:ID3與C4.5
設X是一個取有限個值得離散隨機變數,其概率分布為P(X=xi)=pi, i=1,2,…,n。則隨機變數X的信息熵為
條件熵H(Y|X)表示在已知隨機變數X的條件下隨機變數Y的不確定性。H(Y|X)的計算公式為
所以決策樹分支後信息總熵H(D|A)=P1*H1+P2*H2+...+Pn*Hn,(特徵A條件下D的經驗條件熵)
所以信息增益ΔH=H(D)-H(D|A)
H(D|A)越小,ΔH越大,該特徵A越適合作為當前的決策節點。
選取最佳特徵偽代碼:
計算信息總熵H(D)
遍歷每一個特徵下的關於D的經驗條件熵H(D|A)
計算每一個特徵的信息增益ΔH
將信息增益ΔH最大的特徵作為最佳特徵選為當前決策節點
ID3演算法偽代碼:
如果第一個標簽的數量等於所有的標簽數量,說明這是一個單節點樹,返回這個標簽作為該節點類
如果特徵只有一個,說明這是一個單節點樹,用多數表決法投票選出標簽返回作為該節點類
否則,按信息增益最大的特徵A作為當前決策節點,即決策樹父節點
如果該特徵的信息增益ΔH小於閾值,則用多數表決法投票選出標簽返回作為該節點類
否則,對於該特徵A的每一個可能值ai,將原空間D分割為若干個子空間Di
對於若干個非空子集Di,將每個Di中實例數最大的類作為標記,構建子節點
以Di為訓練空間,遞歸調用上述步驟
由於信息增益存在偏向於選擇取值較多的特徵的問題,而C4.5演算法中,將ID3演算法里的信息增益換成信息增益比,較好地解決了這個問題。
決策樹的優點在於計算量簡單,適合有缺失屬性值的樣本,適合處理不相關的特徵。而缺點是容易過擬合,可以通過剪枝來簡化模型,另外隨機森林也解決了這個問題。

⑼ 決策樹法分為那幾個步驟

1、特徵選擇

特徵選擇決定了使用哪些特徵來做判斷。在訓練數據集中,每個樣本的屬性可能有很多個,不同屬性的作用有大有小。因而特徵選擇的作用就是篩選出跟分類結果相關性較高的特徵,也就是分類能力較強的特徵。在特徵選擇中通常使用的准則是:信息增益。

2、決策樹生成

選擇好特徵後,就從根節點觸發,對節點計算所有特徵的信息增益,選擇信息增益最大的特徵作為節點特徵,根據該特徵的不同取值建立子節點;對每個子節點使用相同的方式生成新的子節點,直到信息增益很小或者沒有特徵可以選擇為止。

3、決策樹剪枝

剪枝的主要目的是對抗「過擬合」,通過主動去掉部分分支來降低過擬合的風險。

【簡介】

決策樹是一種解決分類問題的演算法,決策樹演算法採用樹形結構,使用層層推理來實現最終的分類。

⑽ 決策樹、隨機森林

在了解樹模型之前,自然想到樹模型和線性模型,他們有什麼區別呢?

決策樹與邏輯回歸的分類區別也在於此。

樹形模型更加接近人的思維方式,可以 產生可視化的分類規則,產生的模型具有可解釋性 。樹模型擬合出來的函數其實是 分區間的階梯函數 。

決策樹(decision tree)是一種基本的分類與回歸方法,此處主要討論分類的決策樹。決策樹是一種十分常用的分類方法,屬於有監督學習(Supervised Learning)。所謂有監督學習,就是給出一堆樣本,每個樣本都有一組屬性和一個分類結果,也就是分類結果已知,那麼通過學習這些樣本得到一個決策樹,這個決策樹能夠對新的數據給出正確的分類。

決策樹是一種樹形結構,它主要有三種不同的節點:

決策樹演算法主要包括三個部分: 特徵選擇、樹的生成、樹的剪枝。

比較常用的決策樹演算法有ID3,C4.5和CART(Classification And Regression Tree),CART的分類效果一般優於其他決策樹。

樣本數量,特徵數量上面,一開始需要注意的:

當熵中的概率由數據估計(特別是最大似然估計)得到時,所對應的熵稱為 經驗熵 (empirical entropy)。

什麼叫由數據估計?比如有10個數據,一共有兩個類別,A類和B類。其中有7個數據屬於A類,則該A類的概率即為十分之七。其中有3個數據屬於B類,則該B類的概率即為十分之三。淺顯的解釋就是,這概率是我們根據數據數出來的。

訓練數據集D,則訓練數據集D的經驗熵為H(D),|D|表示其樣本容量,及樣本個數。設有K個類Ck,k = 1,2,3,···,K,|Ck|為屬於類Ck的樣本個數,這經驗熵公式可以寫為:

信息增益表示得知特徵X的信息而使得類Y的信息不確定性減少的程度。

條件熵H(Y|X)表示在已知隨機變數X的條件下隨機變數Y的不確定性,隨機變數X給定的條件下隨機變數Y的條件熵(conditional entropy) H(Y|X),定義X給定條件下Y的條件概率分布的熵對X的數學期望:

當熵和條件熵中的概率由數據估計(特別是極大似然估計)得到時,所對應的分別為經驗熵和經驗條件熵,此時如果有0概率,令0log0=0。

信息增益

一般地, 熵H(D)與條件熵H(D|A)之差成為互信息(mutual information) 。決策樹學習中的信息增益等價於訓練數據集中類與特徵的互信息。

信息增益比

Gini 指數

舉例計算Gini指數(不純度)

這個分類結果明顯並不是很好,因為它沒有將見面與不見面完全的分開,在演算法中,當然不能憑我們的「感覺」去評價分類結果的好壞。我們需要用一個數去表示。(具體數值代入上面的基尼指數計算公式)

信息增益 vs 信息增益比

Gini 指數 vs 熵

ID3演算法的核心是在決策樹各個結點上對應信息增益准則選擇特徵,遞歸地構建決策樹。

具體方法是:

1)從根結點(root node)開始,對結點計算所有可能的特徵的信息增益,選擇信息增益最大的特徵作為結點的特徵。

2)由該特徵的不同取值建立子節點,再對子結點遞歸地調用以上方法,構建決策樹;直到 所有特徵的信息增益均很小或沒有特徵可以選擇 為止;

3)最後得到一個決策樹。

ID3相當於用 極大似然法進行概率模型的選擇 。

與ID3演算法相似,但是做了改進,將信息增益比作為選擇特徵的標准。

CART 的全稱是分類與回歸樹。從這個名字中就應該知道,CART 既可以用於分類問題,也可以用於回歸問題。

回歸樹中,使用平方誤差最小化准則來選擇特徵並進行劃分。每一個葉子節點給出的預測值,是劃分到該葉子節點的所有樣本目標值的均值,這樣只是在給定劃分的情況下最小化了平方誤差。

要確定最優化分,還需要遍歷所有屬性,以及其所有的取值來分別嘗試劃分並計算在此種劃分情況下的最小平方誤差,選取最小的作為此次劃分的依據。由於回歸樹生成使用平方誤差最小化准則,所以又叫做最小二乘回歸樹。

ID3

熵表示的是數據中包含的信息量大小。熵越小,數據的純度越高,也就是說數據越趨於一致,這是我們希望的劃分之後每個子節點的樣子。

信息增益 = 劃分前熵 - 劃分後熵。信息增益越大,則意味著使用屬性 a 來進行劃分所獲得的 「純度提升」 越大 **。也就是說,用屬性 a 來劃分訓練集,得到的結果中純度比較高。

ID3 僅僅適用於二分類問題。ID3 僅僅能夠處理離散屬性。

C4.5 克服了 ID3 僅僅能夠處理離散屬性的問題,以及信息增益偏向選擇取值較多特徵的問題,使用信息增益比來選擇特徵。 信息增益比 = 信息增益 / 劃分前熵 選擇信息增益比最大的作為最優特徵。

C4.5 處理連續特徵是先將特徵取值排序,以連續兩個值中間值作為劃分標准。嘗試每一種劃分,並計算修正後的信息增益,選擇信息增益最大的分裂點作為該屬性的分裂點。

CART 與 ID3,C4.5 不同之處在於 CART 生成的樹必須是二叉樹 。也就是說,無論是回歸還是分類問題,無論特徵是離散的還是連續的,無論屬性取值有多個還是兩個,內部節點只能根據屬性值進行二分。

決策樹生成演算法遞歸的產生決策樹,直到不能繼續下去為止,這樣產生的樹往往對訓練數據的分類很准確,但對未知測試數據的分類缺沒有那麼精確,即會出現過擬合現象。過擬合產生的原因在於在學習時過多的考慮如何提高對訓練數據的正確分類,從而構建出過於復雜的決策樹,解決方法是考慮決策樹的復雜度,對已經生成的樹進行簡化。

剪枝(pruning):從已經生成的樹上裁掉一些子樹或葉節點,並將其根節點或父節點作為新的葉子節點,從而簡化分類樹模型。

實現方式:極小化決策樹整體的損失函數或代價函數來實現

決策樹學習的損失函數定義為:

https://www.cnblogs.com/ooon/p/5647309.html

鑒於決策樹容易過擬合的缺點,隨機森林採用多個決策樹的投票機制來改善決策樹,我們假設隨機森林使用了m棵決策樹,那麼就需要產生m個一定數量的樣本集來訓練每一棵樹,如果用全樣本去訓練m棵決策樹顯然是不可取的,全樣本訓練忽視了局部樣本的規律,對於模型的泛化能力是有害的。

產生n個樣本的方法採用Bootstraping法,這是一種有放回的抽樣方法,產生n個樣本。

而最終結果採用Bagging的策略來獲得,即多數投票機制。

隨機森林的生成方法:

1.從樣本集中通過重采樣的方式產生n個樣本

2.假設樣本特徵數目為a,對n個樣本選擇a中的k個特徵,用建立決策樹的方式獲得最佳分割點

3.重復m次,產生m棵決策樹

4.多數投票機制來進行預測

(需要注意的一點是,這里m是指循環的次數,n是指樣本的數目,n個樣本構成訓練的樣本集,而m次循環中又會產生m個這樣的樣本集)

隨機森林是一個比較優秀的模型,在我的項目的使用效果上來看,它對於多維特徵的數據集分類有很高的效率,還可以做特徵重要性的選擇。運行效率和准確率較高,實現起來也比較簡單。 但是在數據噪音比較大的情況下會過擬合,過擬合的缺點對於隨機森林來說還是較為致命的。

機器學習實戰(三)——決策樹 https://blog.csdn.net/jiaoyangwm/article/details/79525237

熱點內容
伺服器web訪問埠怎麼查看 發布:2024-05-06 07:35:28 瀏覽:225
蘋果id改密碼要什麼條件 發布:2024-05-06 07:34:47 瀏覽:805
鎮江節點伺服器測試ip 發布:2024-05-06 07:15:05 瀏覽:540
sqlserver表格 發布:2024-05-06 07:09:54 瀏覽:612
雪鐵龍凡爾賽選哪個配置 發布:2024-05-06 06:56:04 瀏覽:571
福睿斯配置怎麼樣 發布:2024-05-06 06:50:16 瀏覽:103
微生物資料庫 發布:2024-05-06 06:47:33 瀏覽:605
原神和steam游戲哪個需要配置 發布:2024-05-06 06:37:40 瀏覽:666
nginx訪問403 發布:2024-05-06 05:56:39 瀏覽:677
android上傳圖片參數 發布:2024-05-06 05:56:04 瀏覽:221