1. 程式人生 > >決策樹--學習筆記(一)

決策樹--學習筆記(一)

  • 資訊熵

  • 決策樹

  • 決策樹優化

  • 剪枝

  • 決策樹視覺化

                                              決策樹的直觀理解

位元化(bits)

假設存在一組隨機變數x,各個值出現的概率關係如圖:

現在有一組由x變數組成的序列:BACADDCBAC......;如果現在希望這個序列轉換為二進位制來進行網路傳輸,那麼我們就得到一個這樣的序列:

01001000111110010010......

結論:在這情況下,我們可以使用兩個位元位來表示一個隨機變數。

而當x變量出現的概率值不一樣的時候,對於一組序列資訊來講,每個變數的平均值需要多少位元位來描述呢?

一般化的位元化(Bits)

假設現在隨機變數X具有m個值,分別為V1,v2,...vm;並且各個值出現的概率如下表所示:那麼對於一組列資訊來講,每個變數平均需要多少個位元位來描述呢?

資訊熵(Entropy)

H(X)就叫做隨機變數X的資訊熵:

資訊量:指的是一個樣本/事件所蘊含的資訊,如果一個事件的概率越大,那麼就可以認為該事件所蘊含的資訊越少。

資訊熵就是用來描述系統資訊量的不確定度。

高資訊熵:表示隨機變數X均勻分佈的,各個取值情況是等概論出現的。

低資訊熵:表示隨機變數X各種取值不是等概率出現的。可能概率很大,也可能很小。

條件熵H(Y|X)

給定條件X 的情況下,隨機變數Y的資訊熵就就叫做條件熵。

當專業為數學時,Y的資訊熵的值為:H(Y|X=數學)

H(Y|X=數學)=-1/2log2(1/2)-1/2log2(1/2)=1

給定條件X的情況下,所有不同情況下Y的資訊熵法的平均值叫做條件熵。

給定條件X的情況下,所有不同X值情況下Y的資訊熵的平均值叫做條件熵。另外一個公式如下所示:

H(Y|X)=H(X,y)-H(X)

事件(X,Y)發生所包含的熵,減去事件X單獨發生的熵,即為在事件X發生的前提下,Y發生“新”帶來的熵,這個就是條件熵本身的概念。

決策樹

決策樹(Decision Tree)是在已知各種情況下發生概率的基礎上,通過構建決策樹來進行分析的一種方式,是一種直觀應用概率分析的一種圖解法;決策樹是一種預測模型,代表的是物件屬性與物件值之間的對映關係;決策樹是一種樹形結構,其中每個內部節點表示一個樹形的測試,每個分支表示一個測試輸出,每個葉子節點代表一種類別;決策樹是一種非常常用的有監督的分類演算法。

決策樹的決策過程就是從根節點開始,測試待分類項中對應的特徵屬性,並按照其值選擇輸出分支,知道葉子節點,將葉子節點的存放類別作為決策結果。

決策樹分為兩大類:分類樹和迴歸樹,前者用於分類標籤值,後者用於預測連續值,常用演算法ID3、C4.5、CART等。

決策樹構建過程

決策樹構建的重點就是決策樹的構造。決策樹的構造就是進行屬性選擇度量,確定各個特徵屬性之間的拓撲結構(樹結構),構建決策樹的關鍵就是分裂屬性,構建決策樹的關鍵步驟就是分裂屬性,分裂屬性是指在某個節點按照某一特徵屬性的不同劃分構建不同的分支,其目標就是讓哥哥分裂子集儘可能的“純”(讓一個分裂子類的項儘可能的屬於同一類別)

根據特徵屬性的型別不同,在構建決策樹的時候,採用不同的方式,具體如下:
屬性是離散值,而且不要求生成的是二叉決策樹,此時一個屬性就是一個分支
屬性是離散值,而而且要求生成的是二叉決策樹,此時使用屬性劃分的子集進行測試,按照
“屬於此子集”和“不屬於此子集”分成兩個分支
屬性是連續值,可以確定一個值作為分裂點split_point,按照>split_point和
<=split_point生成兩個分支