spark 機器學習 決策樹 原理(一)

1.什麼是決策樹  
決策樹(decision tree)是一個樹結構(能夠是二叉樹或者非二叉樹)。決策樹分爲分類樹和迴歸樹兩種,分類樹對離散變量作決策樹,迴歸樹對連續變量作決策樹。
  其中每一個非葉節點表示一個特徵屬性上的測試,每一個分支表明這個特徵屬性在某個值域上的輸出,而每一個葉節點存放在一個類別。
  使用決策樹進行決策的過程就是從根節點開始,測試待分類項中相應的特徵屬性,並按照其值選擇輸出分支,知道到達葉子節點,將葉子節點存放的類別做爲決策結果。
決策樹學習算法主要由三部分構成

1.1特徵選擇
  特徵選擇是指從訓練數據中衆多的特徵中選擇一個特徵做爲當前節點的分裂標準,如何選擇特徵有着不少不一樣量化評估標準,從而衍生出不一樣的決策樹算法。
1.2決策樹生成
  根據選擇的特徵評估標準,從上至下遞歸地生成子節點,直到數據集不可分則中止決策樹中止生長。樹結構來講,遞歸結構是最容易理解的方式。
1.3決策樹的剪枝
決策樹容易過擬合,通常來須要剪枝,縮小樹結構規則,緩解過擬合,剪枝技術有預剪枝和後剪枝兩種。

2.例子
一天,老師問了個問題,只根據頭髮和聲音怎麼判斷一位同窗的性別。
爲了解決這個問題,同窗們立刻簡單的統計了7位同窗的相關特徵,數據以下:

同窗A想了想,先根據頭髮判斷,若判斷不出,再根據聲音判斷,因而畫了一幅圖,以下:


同窗B,想先根據聲音判斷,而後再根據頭髮來判斷,如是大手一揮也畫了個決策樹:
算法

同窗A和同窗B誰的決策樹好些?

學習

3.決策樹的特徵選擇
咱們可使用多種方法劃分數據集,可是每種方法都有各自的優缺點。因而咱們這麼想,若是咱們能測量數據的複雜度,對比按不一樣特徵分類後的數據複雜度,若按某一特徵分類後複雜度減小的更多,那麼這個特徵即爲最佳分類特徵。
Claude Shannon 定義了熵(entropy)和信息增益(information gain)。
3.1信息熵
首先了解一下信息量:信息量是對信息的度量,就跟時間的度量是秒同樣,當咱們考慮一個離散的隨機變量 x 的時候,當咱們觀察到的這個變量的一個具體值的時候,咱們接收到了多少信息呢?
信息的大小跟隨機事件的機率有關。越小几率的事情發生了產生的信息量越大,如中國足球隊勇奪世界盃冠軍,越大機率的事情發生了產生的信息量越小,如太陽從東邊升起來了(確定發生嘛, 沒什麼信息量)。

在信息論與機率論中,熵(entropy)用於表示「隨機變量不肯定性的度量」

X表明樣本總數據量,n表明結果分類,p(xi)表明xi的機率(就是結果其中一個分類的機率):
例子:

在15個數據中,結果分類爲2個,放貸或不放貸,9個數據的結果爲放貸,6個數據的結果爲不放貸。因此數據集X的信息熵

3.2信息增益(information gain)
 咱們已經說過,如何選擇特徵,須要看信息增益。也就是說,信息增益是相對於特徵而言的,信息增益越大,特徵對最終的分類結果影響也就越大,咱們就應該選擇對最終分類結果影響最大的那個特徵做爲咱們的分類特徵。
在講解信息增益定義以前,咱們還須要明確一個概念,條件熵。

接下來,讓咱們說說信息增益。前面也提到了,信息增益是相對於特徵而言的。因此,特徵A對訓練數據集D的信息增益g(D,A),定義爲集合D的信息熵H(D)與特徵A給定條件下D的經驗條件熵H(D|A)之差,即:

以貸款申請樣本數據表爲例進行說明。看下年齡這一列的數據,也就是特徵A1,一共有三個類別,分別是:青年、中年和老年。咱們只看年齡是青年的數據,年齡是青年的數據一共有5個,因此年齡是青年的數據在訓練數據集出現的機率是十五分之五,也就是三分之一。同理,年齡是中年和老年的數據在訓練數據集出現的機率也都是三分之一。如今咱們只看年齡是青年的數據的最終獲得貸款的機率爲五分之二,由於在五個數據中,只有兩個數據顯示拿到了最終的貸款,同理,年齡是中年和老年的數據最終獲得貸款的機率分別爲五分之3、五分之四。因此計算年齡的信息增益,過程以下:

同理,計算其他特徵的信息增益g(D,A2)、g(D,A3)和g(D,A4)。分別爲:


測試

最後,比較特徵的信息增益,因爲特徵A3(有本身的房子)的信息增益值最大,因此選擇A3做爲最優特徵。

spa

相關文章
相關標籤/搜索