本文內容主要以演算法思想為主,介紹決策樹原理,從決策樹遷移到整合學習主要是由於隨機森林比較好使,引出了bagging和它的親戚boosting。有趣的思想包括:決策樹的資訊熵、隨機森林的泛化效能、boosting的改變樣本分佈與前向分步思想
人類判斷的機制:由上及下逐級決策,將大問題化為多個子問題。
決策樹機制:選擇不同的劃分屬性,將問題逐步劃分建成一棵樹狀圖。
由根結點(原始問題)、內結點(子問題)、葉節點(最終決策)組成,具有處理未見例項的能力,泛化能力強。
1.1 演算法步驟
決策樹利用遞迴生成,生成過程包含三種遞迴返回:
1)當前結點所含樣本屬於同一類別
2)當前屬性集為空或者當前樣本在所有屬性上相等
3)當前結點所含樣本為空
具體的演算法實現過程這篇文章講的很好:決策樹分類演算法原理分析及**實現
決策樹類演算法有gbdt(gradient boosting dt)、xgbdt、隨機森林
1.2 資訊熵與基尼指數
資訊熵:通過樣本集合的不確定性度量樣本集合的純度(資訊熵是什麼
)ent(d)越大,不確定性越高,純度越低。
資訊增益:就決策樹來說,對公式的理解可以是劃分前後不確定性的差值,也就是使用a劃分屬性帶來的純度提公升
決策樹學習演算法id3(1986)用資訊增益來選擇劃分屬性,c4.5(1993)用資訊增益率來選擇劃分屬性
基尼指數:隨機從d中抽取兩個樣本,其類別標記不一致的概率作為純度的判定,不一致的概率越大,純度越低。
cart(1984)採用基尼指數來選擇劃分屬性
2. bagging與隨即森林
bagging:主要是通過樣本的擾動引入基學習器的多樣性。利用bootstrap從原始資料集中取樣得到不同的資料集,分別訓練不同的及學習器模型,再根據結合策略結合
隨機森林:基於決策樹的bagging,主要是通過樣本擾動和屬性擾動引入多樣性。除了樣本集的抽取,還在屬性劃分過程中引入隨機性,不對所有樣本進行最優選擇,而是先隨機選擇某些屬性,再從隨機的屬性中選擇最優屬性。
3. boosting
此外,基學習器的結合策略也可以根據每步訓練結果進行改進,如adaboost使用的加權平均法中的基學習器分配權重就是根據每一步基學習器的訓練結果得到。
決策樹和CART決策樹
首先簡單介紹下決策樹 說到決策樹肯定離不開資訊熵 什麼是資訊熵 不要被這名字唬住,其實很簡單 乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說 今天早上太陽公升起 資訊量是很少的,以至於沒有必要傳送。但另一條訊息說 今天早上日食 資訊量就很豐富。概率越大資訊量就越少,與...
決策樹(二)決策樹回歸
回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...
決策樹01 決策樹的原理
此筆記根據 machine learning in action 和周志華教授的 機器學習 所作。缺點 可能會產生過度匹配問題。適用資料型別 數值型和標稱型 machine learning in action if so return 類標籤 else 尋找劃分資料集的最好特徵 劃分資料集 建立分...