1. 程式人生 > >1.決策樹(decision tree)演算法(ID3)

1.決策樹(decision tree)演算法(ID3)

0.機器學習中分類和預測演算法的評估:

  • 準確率
  • 速度
  • 強壯性
  • 可規模性 
  • 可解釋性

1.什麼是決策樹/判定樹(decision tree)?

1.1.判定書是一個類似於流程圖的樹結構:其中,每個內部結點表示在一個屬性上的測試每個分支代表一個屬性輸出,而每個樹葉結點代表類或類分佈。樹的最頂層是根結點。

如圖,首先根據天氣這個屬性可以分為三類,sunny在根據humidity這個屬性進行分類,到最後的標記都屬於通一個類別。

1.2機器學習中分類方法中的一個重要演算法

1.3構造決策樹的基本演算法

根據左邊的表格,建立了右邊的決策樹,那是如何建立的呢?,為什麼根節點是age這個屬性?

首先引入熵(entropy)的概念:

公式: ——>變數的不確定性越多,熵也就越大。

第二步,選擇屬性判斷結點

注:Info即沒有屬性A分類時的熵,Infor_A即有屬性A 分類時的熵。

根據公式計算上述的例子中的屬性的熵,判斷哪個為根節點。

重複上述的操作。

幾點注意:

1.所有的屬性都是分類的,即離散值。連續性必須離散化。

2.上述遞迴劃分停止的條件

  • 給定結點的所有樣本屬於同一類。
  • 沒有剩餘的屬性可以用來進一步劃分樣本。在此情況下,使用多數表決

3.剪枝

作為決策樹中一種放置Overfitting過擬合的手段,分為預剪枝和後剪枝兩種。

  • 預剪枝:當決策樹在生成時當達到該指標時就停止生長,比如小於一定的資訊獲取量或是一定的深度,就停止生長。
  • 後剪枝:當決策樹生成完後,再進行剪枝操作。優點是克服了“視界侷限”效應,但是計算量代價較大。

還有一些其他的演算法:

其他演算法即選擇哪個為屬性根結點的度量方式不同。

決策樹的優缺點:

自己可以考慮怎麼用python程式碼實現上述例子。