機器學習 決策樹與整合演算法

2021-08-11 07:50:00 字數 3505 閱讀 4477

樹模型

決策樹:從根節點開始一步步走到葉子節點(決策)

決策樹所有的資料最終都會落到葉子節點,既可以做分類也可以做回歸

樹的組成

根節點:第乙個選擇點

決策樹非葉子節點與分支:中間過程

葉子節點:最終的決策結果

決策樹的訓練與測試

訓練階段:從給定的訓練集構造出來一棵樹(從跟節點開始選擇特徵,

如何進行特徵切分)

決策樹測試階段:根據構造出來的樹模型從上到下去走一遍就好了

一旦構造好了決策樹,那麼分類或者**任務就很簡單了,只需要走一遍

就可以了,那麼難點就在於如何構造出來一顆樹,這就沒那麼容易了,需

要考慮的問題還有很多的!

如何切分特徵(選擇節點)

問題:根節點的選擇該用哪個特徵呢?接下來呢?如何切分呢?

決策樹想象一下:我們的目標應該是根節點就像乙個老大似的能更好的切分資料

(分類的效果更好),根節點下面的節點自然就是二當家了。

目標:通過一種衡量標準,來計算通過不同特徵進行分支選擇後的分類

情況,找出來最好的那個當成根節點,以此類推。

衡量標準-熵

熵:熵是表示隨機變數不確定性的度量

(解釋:說白了就是物體內部的混亂程度,比如雜貨市場裡面什麼都有

那肯定混亂呀,專賣店裡面只賣乙個牌子的那就穩定多啦)

決策樹公式:h(x)=- ∑ pi * logpi, i=1,2, ... , n

乙個栗子:               a集合[1,1,1,1,1,1,1,1,2,2] 

b集合[1,2,3,4,5,6,7,8,9,1]

顯然a集合的熵值要低,因為a裡面只有兩種類別,相對穩定一些

而b中類別太多了,熵值就會大很多。(在分類任務中我們希望通過

節點分支後資料類別的熵值大還是小呢?)

衡量標準-熵

熵:不確定性越大,得到的熵值也就越大

當p=0或p=1時,h(p)=0,隨機變數完全沒有不確定性

當p=0.5時,h(p)=1,此時隨機變數的不確定性最大

決策樹如何決策乙個節點的選擇呢?

資訊增益:表示特徵x使得類y的不確定性減少的程度。

(分類後的專一性,希望分類後的結果是同類在一起)

決策樹構造例項

資料:14天打球情況

決策樹特徵:4種環境變化

目標:構造決策樹

決策樹構造例項

劃分方式:4種

決策樹問題:誰當根節點呢?

依據:資訊增益

決策樹構造例項

在歷史資料中(14天)有9天打球,5天不打球,所以此時的熵應為:

決策樹4個特徵逐一分析,先從outlook特徵開始:

outlook = sunny時,熵值為0.971

outlook = overcast時,熵值為0

outlook = rainy時,熵值為0.971

決策樹構造例項

根據資料統計,outlook取值分別為sunny,overcast,rainy的概率分別為:

5/14, 4/14, 5/14

決策樹熵值計算:5/14 * 0.971 + 4/14 * 0 + 5/14 * 0.971 = 0.693

(gain(temperature)=0.029 gain(humidity)=0.152 gain(windy)=0.048)

資訊增益:系統的熵值從原始的0.940下降到了0.693,增益為0.247

同樣的方式可以計算出其他特徵的資訊增益,那麼我們選擇最大的那個

就可以啦,相當於是遍歷了一遍特徵,找出來了大當家,然後再其餘的

中繼續通過資訊增益找二當家!

決策樹演算法

id3:資訊增益(有什麼問題呢?)

決策樹c4.5:資訊增益率(解決id3問題,考慮自身熵)

cart:使用gini係數來當做衡量標準

gini係數:

(和熵的衡量標準類似,計算方式不相同)

連續值怎麼辦?

決策樹決策樹剪枝策略

為什麼要剪枝:決策樹過擬合風險很大,理論上可以完全分得開資料

(想象一下,如果樹足夠龐大,每個葉子節點不就乙個資料了嘛)

決策樹剪枝策略:預剪枝,後剪枝

預剪枝:邊建立決策樹邊進行剪枝的操作(更實用)

後剪枝:當建立完決策樹後來進行剪枝操作

決策樹剪枝策略

決策樹預剪枝:限制深度,葉子節點個數

葉子節點樣本數,資訊增益量等

後剪枝:通過一定的衡量標準

(葉子節點越多,損失越大)

ensemble learning

目的:讓機器學習效果更好,單個不行,群毆走起

整合演算法

bagging:訓練多個分類器取平均

stacking:聚合多個分類或回歸模型(可以分階段來做)

boosting:從弱學習器開始加強,通過加權來進行訓練

(加入一棵樹,要比原來強)

bagging模型

全稱: bootstrap aggregation(說白了就是並行訓練一堆分類器)

整合演算法

最典型的代表就是隨機森林啦

森林:很多個決策樹並行放在一起

隨機:資料取樣隨機,特徵選擇隨機

隨機森林

構造樹模型:

整合演算法

由於二重隨機性,使得每個樹基本上都不會一樣,最終的結果也會不一樣

bagging模型

樹模型:

整合演算法

之所以要進行隨機,是要保證泛化能力,如果樹都一樣,那就沒意義了!

隨機森林優勢

它能夠處理很高維度(feature很多)的資料,並且不用做特徵選擇

整合演算法

在訓練完後,它能夠給出哪些feature比較重要

可以進行視覺化展示,便於分析

容易做成並行化方法,速度比較快

bagging模型

knn模型:

整合演算法

knn就不太適合,因為很難去隨機讓泛化能力變強!

bagging模型

樹模型:

整合演算法

理論上越多的樹效果會越好,但實際上基本超過一定數量就差不多上下浮動了

boosting模型

典型代表:adaboost, xgboost

整合演算法

adaboost會根據前一次的分類效果調整資料權重

最終的結果:每個分類器根據自身的準確性來確定各自的權重,再合體

adaboost工作流程

每一次切一刀!

整合演算法

最終合在一起

弱分類器這就公升級了!

stacking模型

堆疊:很暴力,拿來一堆直接上(各種分類器都來了)

整合演算法

可以堆疊各種各樣的分類器(knn,svm,rf等等)

為了刷結果,不擇手段!

分階段:第一階段得出各自結果,第二階段再用前一階段結果訓練

stacking模型

整合演算法

堆疊在一起確實能使得準確率提公升,但是速度是個問題

整合演算法是競賽與**神器,當我們更關注於結果時不妨來試試!

決策樹與整合學習

由於機器學習涉及的方法很廣,對機器學習有了乙個橫向巨集觀的把握之後,需要縱向對某一類方法進行深入的學習。因為要研究的課題內容是有監督學習,因此選擇一類有監督的學習方法進行深入的研究 整合學習綜述 2016年10月 目前來說機器學習的研究主要分為四個大方向 a 通過整合學習方法提高學習精度 b 擴大學...

機器學習演算法 決策樹

決策樹類似一中策略或者條件選擇,其中各個節點代表選擇條件,各個葉子結點代表可能達到的結果,決策樹 decision tree 是乙個樹結構 可以是二叉樹或非二叉樹 其每個非葉節點表示乙個特徵屬性上的測試,每個分支代表這個特徵屬性在某個值域上的輸出,而每個葉節點存放乙個類別。使用決策樹進行決策的過程就...

機器學習演算法 決策樹

決策樹的使用主要是用於分類。年齡收入 信用是否學生 是否買電腦年輕高 高是是中年 低中否否 老年中低否 是對於一些適合分類的資料中,考慮各種因素對結果的影響大小進行決策,一般是先選取區分度較高的因素。比如說,年齡大小這個因素在很大程度上影響我們的結果 是否買電腦。那麼,年齡因素將作為第乙個決策因素出...