本章講決策樹算法
決策樹,一種多功能且強大的機器學習算法。它實現了分類和迴歸任務,甚至多輸出任務。機器學習
決策樹的組合就是隨機森林。學習
本章的代碼部分不作說明,具體請到個人GitHub上自行獲取。spa
決策樹的每一個節點都是一種屬性的判斷,每一個分支是判斷結果的輸出,是一種監督學習的算法。it
決策樹的類別有不少,最普遍使用的決策樹的生成算法是CART(Classification And Regression Tree)。io
首先,使用單個特徵k和閾值h將訓練集分爲兩個子集。對於上述兩個參數的選擇,須要通過搜索算法肯定。搜索
而後,重複上述操做,繼續分裂子集,直到達到最大深度。數據
決策樹極少對訓練數據作假設,可是不加限制,總會過擬合。咱們須要對過擬合的決策樹進行正則化處理。咱們能夠使用max_depth、min_samples_leaf、min_samples_split等一系列的超參數進行控制。還有一種方式能夠控制,就是先不控制決策樹的生長,最後進行剪枝做業。若一個節點的子節點所有爲葉節點,則刪除該節點,直到所有節點處理完畢。co
決策樹能夠進行迴歸任務。與分類任務相比,差異在於每一個節點不是預測的類別,而是預測一個值。每一個分支節點預測的值永遠等於該節點內實力目標的平均值。算法的目標就是儘量的將最多的實例接近預測值。同時CART算法分裂方式就是最小化MSE。background
決策樹是不穩定的。它對訓練集的旋轉很敏感。