1.決策樹(decision tree)演算法(ID3)
阿新 • • 發佈:2018-11-06
0.機器學習中分類和預測演算法的評估:
- 準確率
- 速度
- 強壯性
- 可規模性
- 可解釋性
1.什麼是決策樹/判定樹(decision tree)?
1.1.判定書是一個類似於流程圖的樹結構:其中,每個內部結點表示在一個屬性上的測試,每個分支代表一個屬性輸出,而每個樹葉結點代表類或類分佈。樹的最頂層是根結點。
如圖,首先根據天氣這個屬性可以分為三類,sunny在根據humidity這個屬性進行分類,到最後的標記都屬於通一個類別。
1.2機器學習中分類方法中的一個重要演算法
1.3構造決策樹的基本演算法
根據左邊的表格,建立了右邊的決策樹,那是如何建立的呢?,為什麼根節點是age這個屬性?
首先引入熵(entropy)的概念:
公式: ——>變數的不確定性越多,熵也就越大。
第二步,選擇屬性判斷結點
注:Info即沒有屬性A分類時的熵,Infor_A即有屬性A 分類時的熵。
根據公式計算上述的例子中的屬性的熵,判斷哪個為根節點。
重複上述的操作。
幾點注意:
1.所有的屬性都是分類的,即離散值。連續性必須離散化。
2.上述遞迴劃分停止的條件
- 給定結點的所有樣本屬於同一類。
- 沒有剩餘的屬性可以用來進一步劃分樣本。在此情況下,使用多數表決
3.剪枝
作為決策樹中一種放置Overfitting過擬合的手段,分為預剪枝和後剪枝兩種。
- 預剪枝:當決策樹在生成時當達到該指標時就停止生長,比如小於一定的資訊獲取量或是一定的深度,就停止生長。
- 後剪枝:當決策樹生成完後,再進行剪枝操作。優點是克服了“視界侷限”效應,但是計算量代價較大。
還有一些其他的演算法:
其他演算法即選擇哪個為屬性根結點的度量方式不同。
決策樹的優缺點:
自己可以考慮怎麼用python程式碼實現上述例子。