概述
隨機(jī)森林 (Random Forests) 是一種利用決策樹(shù)作為基學(xué)習(xí)器的Bagging 集成學(xué)習(xí)算法蓄氧。
集成學(xué)習(xí)
集成學(xué)習(xí)歸屬于機(jī)器學(xué)習(xí)函似,他是一種訓(xùn)練思路,并不是某種具體的方法或者算法匀们。集成學(xué)習(xí)的核心思路就是人多力量大缴淋,它并沒(méi)有創(chuàng)造出新的算法,而是把已有的算法進(jìn)行結(jié)合泄朴,從而得到更好的效果重抖。
bagging
- 每次采用有放回的抽樣從訓(xùn)練集中取出 n 個(gè)訓(xùn)練樣本組成新的訓(xùn)練集。
- 利用新的訓(xùn)練集祖灰,訓(xùn)練得到 M 個(gè)子模型 {h1,h2,...,hM}钟沛。
- 對(duì)于分類問(wèn)題,采用投票的方法局扶,得票最多子模型的分類類別為最終的類別恨统;對(duì)于回歸問(wèn)題,采用簡(jiǎn)單的平均方法得到預(yù)測(cè)值三妈。
特點(diǎn):
所有基礎(chǔ)模型都一致對(duì)待畜埋,每個(gè)基礎(chǔ)模型手里都只有一票。然后使用投票的方式得到最終的結(jié)果畴蒲。
boosting
- 利用初始訓(xùn)練樣本集訓(xùn)練得到一個(gè)基學(xué)習(xí)器悠鞍。
- 提高被基學(xué)習(xí)器誤分的樣本的權(quán)重,使被錯(cuò)誤分類的樣本在下輪訓(xùn)練中得到更大的關(guān)注模燥,利用調(diào)整后的樣本訓(xùn)練得到下一個(gè)基學(xué)習(xí)器咖祭。
- 重復(fù)上述步驟,得到 M 個(gè)學(xué)習(xí)器蔫骂。
- 對(duì)于分類問(wèn)題么翰,采用有權(quán)重(根據(jù)誤差)的投票方式;對(duì)于回歸問(wèn)題辽旋,采用加權(quán)平均得到預(yù)測(cè)值浩嫌。
特點(diǎn):
對(duì)基礎(chǔ)模型不是一致對(duì)待的,而是經(jīng)過(guò)不停的考驗(yàn)和篩選來(lái)挑選出「精英」补胚,然后給精英更多的投票權(quán)码耐,表現(xiàn)不好的基礎(chǔ)模型則給較少的投票權(quán),然后綜合所有人的投票得到最終結(jié)果
決策樹(shù)
決策樹(shù)是一種很簡(jiǎn)單的算法糖儡,具有很強(qiáng)的解釋性伐坏,符合人類的直觀思維。是一種基于if-then-else規(guī)則的有監(jiān)督學(xué)習(xí)算法握联,上面的圖片可以直觀的表達(dá)決策樹(shù)的邏輯桦沉。
我們以鳶尾花數(shù)據(jù)為例每瞒,在構(gòu)建決策樹(shù)的構(gòu)建過(guò)程中,我們需要關(guān)注的是這兩個(gè)點(diǎn):
信息熵
為了計(jì)算劃分的節(jié)點(diǎn)以及維度纯露,我們需要引入信息熵的概念:
熵在信息論中代表隨機(jī)變量不確定度的度量剿骨。
熵越大,數(shù)據(jù)的不確定性越高埠褪。
熵越小浓利,數(shù)據(jù)的不確定性越低。
信息熵的公式如下:
對(duì)于一個(gè)系統(tǒng)钞速,假設(shè)有k類信息贷掖,每類信息占的比例就是pi 渴语。
對(duì)于二分類問(wèn)題驾凶,信息熵的共識(shí)可以變化為:
x即其中一類的概率牙甫,我們畫(huà)出圖像:
可以看到调违,當(dāng)x的取值趨近于0或者趨近于1的時(shí)候窟哺,求出的熵值會(huì)趨近于0。
由此,我們可以通過(guò)劃分?jǐn)?shù)據(jù)集的方式阿蝶,每劃分一次玷过,計(jì)算一次系統(tǒng)的信息熵真仲,對(duì)應(yīng)在鳶尾花數(shù)據(jù)虑凛,某次劃分的信息熵計(jì)算如圖:
我們可以遍歷每個(gè)維度的每個(gè)值锣披,多次劃分钓葫,通過(guò)這樣的過(guò)程,來(lái)求出決策樹(shù)每次劃分的維度以及最好的值。至此鸭廷,我們了解了決策樹(shù)的大體流程桅狠。上面的方式也被稱為CERT讼载,在決策樹(shù)中,還有更多的方式咪鲜,比如ID3鸟雏,C4.5等等享郊。在CERT中,大部分情況也不會(huì)使用信息熵作為尋找最優(yōu)劃分的依據(jù)孝鹊,而是使用基尼系數(shù)炊琉,基尼系數(shù)有跟信息熵差不多的性質(zhì),有興趣的可以自己了解又活。
分析鳶尾花數(shù)據(jù)代碼如下:
決策樹(shù)的超參數(shù)
- max_depth 樹(shù)的最大深度
- min_samples_split 節(jié)點(diǎn)再劃分所需最少樣本數(shù)
- min_samples_leaf 葉子節(jié)點(diǎn)所需最少樣本數(shù)
更多超參數(shù)可以參看scikit-learn decision tree中決策樹(shù)部分
隨機(jī)森林
隨機(jī)森林是由很多決策樹(shù)構(gòu)成的苔咪,不同決策樹(shù)之間沒(méi)有關(guān)聯(lián)。
當(dāng)我們進(jìn)行分類任務(wù)時(shí)柳骄,新的輸入樣本進(jìn)入团赏,就讓森林中的每一棵決策樹(shù)分別進(jìn)行判斷和分類,每個(gè)決策樹(shù)會(huì)得到一個(gè)自己的分類結(jié)果耐薯,決策樹(shù)的分類結(jié)果中哪一個(gè)分類最多舔清,那么隨機(jī)森林就會(huì)把這個(gè)結(jié)果當(dāng)做最終的結(jié)果。
關(guān)于隨機(jī)森林的更多細(xì)節(jié)曲初,可以參看scikit-learn random froest